如何用ImportExcel PowerShell模块设置整个工作表单元格水平垂直居中?
用ImportExcel实现整个工作表单元格水平+垂直居中
完全可以实现,你只需要借助-PassThru参数获取Excel对象,然后对工作表的已使用范围设置对齐样式,具体修改后的代码如下:
# 执行SQL查询并导出到Excel,通过-PassThru获取Excel包实例 $excelPackage = Invoke-DbaQuery -SqlInstance $sqlserver -Database $database -Query $query | Select * -ExcludeProperty RowError, RowState, Table, ItemArray, HasErrors | Export-Excel -Path $ExcelFile -FreezeTopRow -BoldTopRow -AutoSize -PassThru # 定位到默认的Sheet1工作表 $targetSheet = $excelPackage.Workbook.Worksheets["Sheet1"] # 获取工作表中已使用的单元格范围(避免设置空白区域) $usedRange = $targetSheet.Dimension if ($usedRange) { # 设置水平居中 $targetSheet.Cells[$usedRange.Start.Row, $usedRange.Start.Column, $usedRange.End.Row, $usedRange.End.Column].Style.HorizontalAlignment = [OfficeOpenXml.Style.ExcelHorizontalAlignment]::Center # 设置垂直居中 $targetSheet.Cells[$usedRange.Start.Row, $usedRange.Start.Column, $usedRange.End.Row, $usedRange.End.Column].Style.VerticalAlignment = [OfficeOpenXml.Style.ExcelVerticalAlignment]::Center } # 保存修改并释放Excel资源 $excelPackage.Save() $excelPackage.Dispose()
关键说明:
-PassThru是核心参数,它会返回ImportExcel底层使用的ExcelPackage对象,让我们能在导出后继续修改工作表样式- 使用
$targetSheet.Dimension获取已使用的单元格范围,比直接选中整个工作表更高效,不会影响空白单元格 - 对齐样式依赖EPPlus库的枚举类型,ImportExcel已经内置了该库,无需额外安装
内容的提问来源于stack exchange,提问作者MISNole
相关产品推荐
相关产品推荐

