Excel 从Powershell自动格式化.csv文件

Excel 从Powershell自动格式化.csv文件,excel,powershell,csv,formatting,export,Excel,Powershell,Csv,Formatting,Export,我有一个Powershell脚本,用于将某些用户的信息从Active Directory导出到.csv文件。我想通过Excel对此数据应用格式设置 有没有什么方法可以让Powershell创建的文件在没有任何用户干预的情况下自动格式化(粗体/下划线列、调整列宽以适应所有数据等),一个是可格式化的Excel文件,另一个是可自动格式化的Excel文件?也许把它附加到某种模板上 此文件的目的是供最终用户下载。有点像用户目录。用户可以前往网络驱动器位置,获得每周更新的员工名单以及有关他们的信息(部门、电

我有一个Powershell脚本,用于将某些用户的信息从Active Directory导出到.csv文件。我想通过Excel对此数据应用格式设置

有没有什么方法可以让Powershell创建的文件在没有任何用户干预的情况下自动格式化(粗体/下划线列、调整列宽以适应所有数据等),一个是可格式化的Excel文件,另一个是可自动格式化的Excel文件?也许把它附加到某种模板上

此文件的目的是供最终用户下载。有点像用户目录。用户可以前往网络驱动器位置,获得每周更新的员工名单以及有关他们的信息(部门、电话号码等),并打印出该名单。理想情况下,这将在最终用户不做任何工作的情况下完成。或者,我可以自己每周格式化一次这个列表。但如果有更好的办法,我会洗耳恭听。

这已经解决了(感谢StefTheo和BenH在我的评论中)。我最终使用了Powershell的导入Excel模块。它工作起来很有魅力,而且工作起来相对简单。事实上,我有点失望,因为我只能用它来做非常简单的事情,因为它是如此强大,可以做这么多

你可以找到

以下是我使用的代码供参考。这段代码进入Active Directory并取出列出“部门”的所有用户(这对我来说是必要的,因为有些管理员/测试用户没有列出部门,我想省略他们)。它获取他们的显示名称、标题、部门、办公室、分机和电子邮件,并将其导出到Excel文件。然后我使用导入Excel设置Excel文件的样式

$excel=Get-ADUser -Filter {(Department -like '*')} -Properties DisplayName, Title, Department, Office, OfficePhone, EmailAddress | select DisplayName, Title, Department, Office, OfficePhone, EmailAddress | Sort-Object "DisplayName" | Export-Excel ("\\w2kapps\shared\EmployeeList.XLSX" ) -WorksheetName "Users From Directory" -AutoSize -FreezeTopRow -PassThru
$excel.Workbook.Worksheets[1].Row(1).style.font.bold = $true
$BorderBottom = "Thick"
$BorderColor = "Black"
Set-Format -Address $excel.Workbook.Worksheets[1].Cells["A:F"]    -BorderBottom $BorderBottom -BorderColor $BorderColor
$excel.Save() ; $excel.Dispose()

我不知道什么是不方便用户的意思?输出到底有什么问题,期望的输出是什么样子的。这种要求大多是主观的。CSV只是原始数据格式。如果您愿意,Excel会让它看起来“漂亮”。我不知道有任何PowerShell cmdlet可以实现这一点,但也可以使用类似于“来自PowerShell”的实用程序。Doug Finke使用类似于导入CSV/导出CSV的EPPlus库和函数。否则,你可以与Excel交互作为一个COMObjo来进行格式化。除非最终用户需要与电子表格交互,否则你可以考虑创建HTML报告——看我让它工作了!我使用了导入Excel,经过一番周折后,它工作得很有魅力。对于任何对我的实现感兴趣的人,我正在用我使用的代码更新OP。感谢StefTheo和BenH的获奖推荐!