如何通过PowerShell从Excel中提取加粗文本并存入变量
实现方法
你当前使用的是ImportExcel模块的EPPlus组件操作xlsx文件,单元格内部分内容加粗属于富文本格式,无法直接通过单元格的Value属性获取,遍历单元格的RichText集合筛选带加粗标记的文本段拼接即可。
完整代码
# 打开目标xlsx文件 $excel = Open-ExcelPackage -Path './test.xlsx' # 获取指定工作表 $worksheet = $excel.Workbook.Worksheets['Sheet1'] # 提取指定单元格(示例为A1单元格)内的所有加粗文本 $targetCell = $worksheet.Cells['A1'] $StringBold = ($targetCell.RichText | Where-Object { $_.Bold -eq $true } | ForEach-Object { $_.Text }) -join '' # 如果需要提取整个工作表所有单元格内的加粗文本,替换上面的$StringBold赋值逻辑为以下代码即可 # $allBoldContent = @() # foreach ($cell in $worksheet.Cells) { # if ($cell.RichText.Count -gt 0) { # $boldPartInCell = ($cell.RichText | Where-Object { $_.Bold } | ForEach-Object { $_.Text }) -join '' # if (-not [string]::IsNullOrWhiteSpace($boldPartInCell)) { # $allBoldContent += $boldPartInCell # } # } # } # $StringBold = $allBoldContent -join "`n" # 输出查看提取结果 $StringBold # 关闭文件释放资源 Close-ExcelPackage -ExcelPackage $excel
注意事项
- 上述逻辑自动兼容单元格内多段分散加粗的场景,会把所有符合加粗格式的文本片段拼接为完整字符串
- 该方法不需要本地安装Microsoft Office,ImportExcel模块直接解析xlsx文件结构,比COM对象调用方式更稳定轻量
- 如果需要定位其他单元格,可修改
$targetCell的赋值规则:按行号列号定位可写为$worksheet.Cells[行号,列号],比如$worksheet.Cells[3,2]对应第3行第2列的B3单元格
内容的提问来源于stack exchange,提问作者Marek Sanoba
相关产品推荐
相关产品推荐

