You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:48:21