在PowerShell中使用importexcel格式化excel?

时间:2017-06-29 05:33:02

标签: excel powershell

我一直在试图弄清楚Set-CellStyle在ImportExcel中是如何工作的:https://github.com/dfinke/ImportExcel

我已使用Import-Excel导入excel文件,将其保存到变量并对其进行了一些更改。现在我试图将它与一些格式一起导出。我要做的是更改此区域中的单元格颜色:第1-4行和第A列到第D列。

如果我看看Get-Help Set-CellStyle,它会说:

SYNTAX
    Set-CellStyle [[-WorkSheet] <Object>] [[-Row] <Object>] [[-LastColumn] <Object>] [[-Pattern] {None | Solid | DarkGray | MediumGray | LightGray | Gray125 | Gray0625 | DarkVertical | DarkHorizontal | DarkDown | DarkUp | DarkGrid | DarkTrellis | LightVertical | LightHorizontal | LightDown | LightUp | LightGrid | LightTrellis}] [[-Color] <Color>]

以下是我基本上做的事情:

$Excel = Import-Excel -Path C:\Temp\excel.xlsx
$Excel | Export-Excel -Path C:\Temp\excel.xlsx -Autosize | Set-CellStyle ??

但我似乎无法让Set-CellStyle工作。我只是不明白正确的语法,帮助文件或github上的示例不是很清楚。有人可以帮我解决这个问题吗?

另外,如果有人知道如何加粗特定的行/单元格,请分享一个例子:)

1 个答案:

答案 0 :(得分:0)

The code for the function is here

您需要做的就是传递行号和最后一列。默认情况下,它从列A开始。您不能像在问题中那样使用管道,因为它不接受来自管道的值。

$Excel = Import-Excel -Path C:\Temp\excel.xlsx
$Excel | Export-Excel -Path C:\Temp\excel.xlsx -Autosize

# figure out how to assign a worksheet,  e.g. to variable $ws

# loop over rows
foreach($row in 1./4){
    Set-CellStyle -Worksheet $ws -Row $row -LastColumn "D"
}