如何使用 Powershell 应用 Excel 表格样式

Posted

技术标签:

【中文标题】如何使用 Powershell 应用 Excel 表格样式【英文标题】:How to apply Excel Table Style using Powershell 【发布时间】:2022-01-08 11:58:48 【问题描述】:

我正在考虑编写将我现有的 CSV 文件转换为 XLSX 文件的脚本,所以我一直在关注这篇文章 https://code.adonline.id.au/csv-to-xlsx-powershell/

它工作正常,但我只是想知道如何在转换为 XLSX 文件时将其格式化为表格并应用样式?

如果我能得到任何帮助或建议,我将不胜感激。

### Set input and output path
$inputCSV =  "C:\AuditLogSearch\Modified Audit-Log-Records.csv"
$outputXLSX = "C:\AuditLogSearch\output1.xlsx"

### Create a new Excel Workbook with one empty sheet
$excel = New-Object -ComObject excel.application 
$workbook = $excel.Workbooks.Add(1)
$worksheet = $workbook.worksheets.Item(1)

### Build the QueryTables.Add command
### QueryTables does the same as when clicking "Data » From Text" in Excel
$TxtConnector = ("TEXT;" + $inputCSV)
$Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
$query = $worksheet.QueryTables.item($Connector.name)

### Set the delimiter (, or ;) according to your regional settings
$query.TextFileOtherDelimiter = $Excel.Application.International(5)

### Set the format to delimited and text for every column
### A trick to create an array of 2s is used with the preceding comma
$query.TextFileParseType  = 1
$query.TextFileColumnDataTypes = ,2 * $worksheet.Cells.Columns.Count
$query.AdjustColumnWidth = 1

### Execute & delete the import query
$query.Refresh()
$query.Delete()

$Workbook.SaveAs($outputXLSX,51)
$excel.Quit()


【问题讨论】:

ImportExcel 模块几乎默认执行此操作。如果您想让生活更轻松,请使用它:) @SantiagoSquarzon 再次嗨,你能不能给我一个例子,导入 csv 并将其导出到格式化表格样式的 xlsx 文件。 【参考方案1】:

假设您想试用ImportExcel 模块。

先安装:Install-Module ImportExcel -Scope CurrentUser

那么代码将如下所示:

$params = @
    AutoSize = $true
    TableName = 'exampleTable'
    TableStyle = 'Medium11' # => Here you can chosse the Style you like the most
    BoldTopRow = $true
    WorksheetName = 'YourWorkSheetName'
    PassThru = $true
    Path = 'path/to/excel.xlsx' # => Define where to save it here!


$xlsx = Import-Csv path/to/csv.csv | Export-Excel @params
$ws = $xlsx.Workbook.Worksheets[$params.Worksheetname]
$ws.View.ShowGridLines = $false # => This will hide the GridLines on your file
Close-ExcelPackage $xlsx

作者有一个 youtube 频道,用于上传教程,如果您想了解更多信息,还可以通过 Internet 找到在线文档和教程。

【讨论】:

以上是关于如何使用 Powershell 应用 Excel 表格样式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 或 python 脚本读取、编辑或附加存储在 Azure Blob 存储中的 Excel 文件(列和行)

从powershell脚本产生的Excel没有退出[重复]

如何将 PowerShell 树输出到文本或 Excel 文件

将变量从 Excel 2007 自定义任务窗格传递到托管 PowerShell

Powershell Excel 自动化按日期保存工作簿

如何在PowerShell脚本中嵌入EXE文件