【发布时间】:2020-01-25 18:44:21
【问题描述】:
我想从 Excel 工作表中提取一系列单元格并以 CSV 格式输出以供进一步使用。到目前为止,我已经写了这个:
script.ps1:
$excel = New-Object -ComObject Excel.Application
$WB = $excel.Workbooks.Open('c:\users\me\desktop\temp\nouveau dossier\superstore.xls')
$WS = $WB.Sheets.Item(1)
$data = $WS.Range("A1", "E10")
$data | select text | Export-Csv 'YATry.csv' -NoTypeInformation -Delimiter ';'
$excel.Quit()
但我得到的是:
“文本” “行号” “订单号” “订购日期” “发货日期” “船舶模式” “1” “CA-2016-152156” “2016-11-08” “2016-11-11” “二等” “2” “CA-2016-152156” “2016-11-08” “2016-11-11” “二等” “3” “CA-2016-138688” “2016-06-12” “2016-06-16” “二等” [...]我错过了什么?
【问题讨论】:
-
您是否尝试过在 Excel 中执行此操作?
-
我一直在将选定的单元格范围手动复制粘贴到新工作簿中的临时表中,然后将该工作簿导出为 *csv,然后在记事本 ++ 中打开该文件以获取数据.我想自动转换。
-
代码中“选择文本”的目的是什么?
-
您向我们展示的是一个只有一个字段的 CSV 文件。该字段的名称是“文本”。这在第一行中显示为前面。接下来的几行是您在 Excel 工作簿中选择的表中的列标题的名称。这大概就是您希望在 CSV 的第一条记录中看到的内容,用分号分隔。这不是一个答案,但我希望它有所帮助。
-
选择文本仅使用所需范围内的值,否则会包含大量开销。
标签: excel powershell csv