【问题标题】:Center and Middle Align all cells in an Excel worksheet居中对齐 Excel 工作表中的所有单元格
【发布时间】:2022-08-14 02:38:14
【问题描述】:

我正在使用 ImportExcel PowerShell 模块将数据从 SQL 服务器导出到 Excel 电子表格。我已经完成了整个过程,但我想让整个工作表 - 默认为 Sheet1 - 居中对齐。

我正在查看他们的 Git 中列出的 FormatCellStyles 示例,但对于如何将这两种对齐方式应用于整个工作表,我没有任何意义。

ApplyFormatInScriptBlock

ApplyStyle

PassInScriptBlock

在我遇到对齐问题之前,代码非常简单 - 我被卡住了。是否可以使用 ImportExcel 模块将整个工作表居中对齐?

Invoke-DbaQuery -SqlInstance $sqlserver -Database $database -Query $query | Select * -ExcludeProperty RowError, RowState, Table, ItemArray, HasErrors | Export-Excel -Path $ExcelFile -FreezeTopRow -BoldTopRow -AutoSize

    标签: powershell


    【解决方案1】:

    我经常使用 ImportExcel 模块,但从不用于格式化,所以我决定找点乐子来迎接你的挑战。不幸的是,我没有找到直接使用Export-Excel 应用对齐的方法,但是您可以在之后对保存的工作簿执行以下操作

    $excelPath = 'C:\temp\formattest.xlsx'
    $excel = Open-ExcelPackage $excelPath
    $excel.Workbook.Worksheets['Sheet1'].Cells | Set-Format -HorizontalAlignment Center -VerticalAlignment Center
    Close-ExcelPackage $excel
    
    

    查看您提供的一些示例,看起来像这样可能是更令人期待的方法:

    $excelpkg = Invoke-DbaQuery -SqlInstance $sqlserver -Database $database -Query $query | 
        Select-Object * -ExcludeProperty RowError, RowState, Table, ItemArray, HasErrors | 
            Export-Excel -FreezeTopRow -BoldTopRow -AutoSize -PassThru
    $ws = $excelpkg.Workbook.Worksheets['Sheet1']
    $wsUsedRange = $ws.Dimension.Address
    Set-ExcelRange -Worksheet $ws -Range $wsUsedRange -HorizontalAlignment Center -VerticalAlignment Center
    Close-ExcelPackage $excelpkg -Show -SaveAs $ExcelFile
    
    • 将Export-Excel 的输出传递给一个变量,
    • 使用 Set-ExcelRange 应用您想要的更改
    • 然后使用Close-ExcelPackage 保存并关闭工作簿

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多