【问题标题】:PowerShell Export-Excel - Format Cells As Text "@"PowerShell 导出 Excel - 将单元格格式设置为文本“@”
【发布时间】:2021-10-01 08:38:58
【问题描述】:

当我运行以下命令并打开 Excel 文件时,我看到所有单元格都被格式化为文本,但数字仍然显示为:2.38742+12。我希望看到实际值为 Text: 0002387429384723。

我在 Excel 2016 中使用 PowerShell 5.1 和 Export-Excel 模块。

$xl = "0002387429384723" | Export-Excel -Path "c:\temp\file.xlsx" -WorksheetName "Sheet1" -Numberformat "@" -PassThru

$xlSheet = $xl.Workbook.Worksheets["Sheet1"]
$xlSheet.Cells.AutoFitColumns()

Close-ExcelPackage $xl

我不确定我在这里缺少什么。任何有关这方面的指导都会有所帮助。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    使用 -NoNumberConversion * 开关来防止所有列的数字转换。如果您只希望特定列以这种方式运行,只需将通配符替换为列名即可。这允许值有前导零并防止科学计数法显示。

    【讨论】:

      【解决方案2】:

      我设法通过将数据放入 DataTable 并使用以下代码导入 DataTable 来解决此问题。这种方法似乎将单元格格式保留为文本。

      $sheetName = "Sheet1"
      $xl = Export-Excel -Path "c:\temp\file.xlsx" -WorksheetName $sheetName -PassThru
      
      $null = $xl.Workbook.Worksheets[$sheetName ].Cells[1,1].LoadFromDataTable($dt, $true)
      
      $null = Export-Excel -ExcelPackage $xl -WorksheetName $sheetName -PassThru
      ...
      Close-ExcelPackage $xl
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多