powershell - 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"
解决方案
您可以通过在字符串前面加上 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."}}
推荐阅读
- python - 在 Robot Framework 中为连接的所有查询设置架构
- javascript - index.js:1 警告:失败的道具类型:不推荐使用“ForwardRef(ButtonBase)”的道具“buttonRef”。改用`ref`
- firebase - Flutter GetX 变量发生变化,但 UI 没有
- java - javax.persistence.PersistenceException:没有名为 PERSISTENCE 的 EntityManager 的持久性提供程序
- python - tf.keras.models.load_model 返回 ValueError:应在输入列表上调用合并层
- asp.net-core - 将客户端凭据流与授权代码流相结合(win-auth)
- html - 使用内容的绝对位置防止背景滚动
- r - 抓取 R 错误“stringsAsFactors = FALSE):参数暗示不同的行数:1、59、165、89”
- python - 我如何根据 if 条件“保持”迭代值,并且一旦满足,继续逻辑排序?
- reactjs - 如何在反应中将数据从子函数传递到父组件