首页 > 解决方案 > Import-Excel:前导零和结束行

问题描述

我在使用 Import-Excel 时遇到了 2 个问题。我正在从另一个电子表格中提取三列数据并从中创建一个临时电子表格。

1 - 我有一列(项目编号)正在删除新电子表格上的前导零。因此,项目编号 0600 将在新电子表格中显示为 600。

2 - 我从中提取数据的电子表格只有 XX 行的数据。根据当前打开的项目数量,该行可能会有所不同。一个月我们可能有 70 行,下个月我们可能有 80 行。但是,当创建新电子表格时,它将添加所有项目(它应该这样做),但它也会最大化最后一行下的行数(创建的表有额外的空白行)。

$path = "\\serverpath\Project Assignments.xlsm"

import-excel -path $path -WorksheetName "Assignments" -startrow 10 -startColumn 1 -headername "Project No.","Project Name","PM2","PM" | Select-Object "Project No.","Project Name","PM" | Export-Excel -NoNumberConversion "c:\test.xlsx"

标签: powershell

解决方案


您可以通过在字符串前面加上 TAB 字符来强制 Excel 不将字符串转换为数值。

尝试:

$path = "\\serverpath\Project Assignments.xlsm"
Import-Excel -Path $path -WorksheetName "Assignments" -StartRow 10 -StartColumn 1 -HeaderName "Project No.","Project Name","PM2","PM" | 
Select-Object @{Name = "Project No."; Expression = { "`t{0}" -f $_."Project No."}}, "Project Name", "PM" | 
Export-Excel -NoNumberConversion "c:\test.xlsx"

如果您的所有项目编号都应恰好有 4 位数字,并在需要时以前导零为前缀,请使用:

@{Name = "Project No."; Expression = { "`t{0:D4}" -f $_."Project No."}}

推荐阅读