excel - 根据列值使用 Powershell 拆分 Excelfile .xlxs
问题描述
我需要通过powershell脚本根据第一列的值拆分并保存一个excel文件。这是 excel 文件的构建方式(应用程序 30.000 行)
´´´Column1 # Column2 # Column3´´´
´´´AA # data # data # data´´´
´´´AA # data # data # data´´´
´´´AB # data # data # data´´´
´´´AC #data #data #data´´´
´´´AC #data #data #data´´´
结果应该是多个文件,文件名为 AA.xlxs、AB.xlxs、AC.xlxs,当然还有相应的行数据。
到目前为止,我有以下代码:
$objexcel = New-Object -ComObject Excel.Application
$wb = $objexcel.WorkBooks.Open("C:\Test.xlsx")
$objexcel.Visible = $true
$objexcel.DisplayAlerts = $False
$ws = $wb.Worksheets.Item(1)
$doc = $ws.Range("A:A")
foreach ($doc in $docs) {
$newfile,$objexcel = $objexcel.where({$doc -eq $doc})
$newfile | Export-Excel "C:\$doc.xlxs"
}
它只是打开文件,但没有任何反应。如果一些编码人员可以查看代码或提供一个有效的代码,那就太好了。提前致谢。
解决方案
没有发生任何事情的原因是因为您正在迭代$docs
其中不包含任何元素。它当前为空。
当您引用查找数据时,您使用的是 $objexcel,但那是您的 excel 应用程序..不是您要迭代的工作表。使用 $as 访问工作表。
您需要迭代Cells
您的 $ws 并在 cells.Item(x, 0) 时获取数据并基于该数据创建一个新文件,其中包含其他两列中的值。
推荐阅读
- python - 如何访问硒中的多个文本框
- chef-infra - 在厨师检查中实现跳过条件
- android - 撰写中的分享按钮
- firebase - 为什么这个 Firebase Firestore orderBy 查询不起作用?
- javascript - 在使用 nodejs 和 express 时如何从另一个 JavaScript 文件获得响应?
- bluetooth - 为什么这一系列的动作可以按照我在 Arduino 代码中的意图运行?
- find - 在 Linux 上查找四月修改过的文件
- visual-studio-code - Altair 绘图不再显示在 VS Code 中
- javascript - 创建自定义函数以删除数组中所有出现的元素
- python - 如何使用带有 pandas 的 lambda 函数迭代数组