【问题标题】:Automatically Format .csv file from Powershell从 Powershell 自动格式化 .csv 文件
【发布时间】:2018-11-29 14:02:36
【问题描述】:

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

有什么办法可以使 Powershell 创建的文件一方面是可格式化的 Excel 文件,另一方面是自动格式化(粗体/下划线列、调整列宽以适合所有数据等),而无需任何用户干预?也许将其附加到某种模板?

此文件的目的是供最终用户下载。有点像用户目录。用户可以到网络驱动器位置获取每周更新的员工列表以及有关他们的信息(部门、电话号码等),并将该列表打印出来。理想情况下,这将在最终用户方面不做任何工作的情况下完成。或者,我可以自己每周格式化一次此列表。但如果有更好的方法,那我就全神贯注了。

【问题讨论】:

  • 不知道not user-friendly是什么意思? 究竟 的输出有什么问题,以及所需的输出是什么样的。这个要求大部分是主观的。 CSV 只是原始数据格式。如果您愿意,Excel 会让它看起来“漂亮”。
  • 我不知道有任何 PowerShell cmdlet 可以完成此操作,但可以使用 PowerShell 中的 EPPlus 之类的实用程序。
  • Import-Excel by Doug Finke 使用类似于 Import-CSV/Export-CSV 的 EPPlus 库和函数。否则,您可以将 Excel 作为 COMObject 进行交互以进行格式化。
  • 除非最终用户需要与电子表格交互,否则您可以考虑改为创建 HTML 报告 - 请参阅 ConvertTo-Html
  • 我成功了!我使用了 Import-Excel,经过一番折腾之后,它就像一个魅力。对于任何对我的实现感兴趣的人,我正在使用我使用的代码更新 OP。感谢 StefTheo 和 BenH 的获奖推荐!

标签: excel powershell csv formatting export


【解决方案1】:

这已解决(感谢我的 cmets 中的 StefTheo 和 BenH)。我最终使用了 Powershell 的 Import-Excel 模块。它就像一种魅力,而且工作起来相对简单。我实际上有点沮丧,我只能用它来做非常简单的事情,因为它非常强大并且可以做很多事情!

你可以找到Import-Excel here.

作为参考,这是我使用的代码。此代码进入 Active Directory 并拉出列出了“部门”的所有用户(这对我来说是必要的,因为有没有列出部门的管理员/测试用户,我想省略它们)。它获取他们的显示名称、职务、部门、办公室、分机和电子邮件,并将其导出到 Excel 文件。然后我使用 Import-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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多