如何在向Excel写入数据后使用ImportExcel冻结窗格?
使用ImportExcel模块在自定义写入数据后冻结窗格
当你通过-PassThru拿到Excel对象后,直接操作工作表的原生属性就能实现冻结,不用再依赖Export-Excel的-FreezePane参数。具体操作步骤:
- 确保你能获取到正在操作的工作表对象(默认情况下是
$Excel.Workbook.Worksheets[0],或者你自定义的$Worksheet变量) - 先激活目标工作表(Excel要求冻结窗格前必须激活对应工作表)
- 设置分割位置并启用冻结
对应你的代码,修改后如下:
$Excel = Export-Excel -Path $filename -PassThru ... $Worksheet.Cells[$row, $column++].Value = $Server ... # 执行冻结窗格 $Worksheet.Activate() # 冻结首行首列:分割点设在第2行第2列,即固定首行和首列 $Worksheet.Application.ActiveWindow.SplitColumn = 1 $Worksheet.Application.ActiveWindow.SplitRow = 1 $Worksheet.Application.ActiveWindow.FreezePanes = $true $Excel.Save()
关键说明
SplitColumn = 1:在第1列右侧分割,固定左侧首列;SplitRow = 1:在第1行下方分割,固定上方首行- 若要冻结第3行第3列,需设置
SplitColumn = 2、SplitRow = 2,因为分割位置是固定区域的下一个单元格 - 必须先激活工作表,否则冻结操作可能无法生效
内容的提问来源于stack exchange,提问作者Kevin Weinrich
相关产品推荐
相关产品推荐

