CSV到没有安装Excel的多页XLS。 电源shell
我有一个多个CSV文件的文件夹。 我想采取所有这些,并使用代表每个CSV文件的工作表创build一个XLS(或xlsx)。
这里的关键区别是Excel没有安装,不能。
我知道我可以使用EPPlus库 – http://epplus.codeplex.com/ 。 我也读过使用Access数据库引擎 – http://www.microsoft.com/en-us/download/details.aspx?id=13255 。
我已经经历了许多不同的脚本,以传统的方式将CSV转换为XLS,并尝试将它们转换为使用其中的一种,但似乎并没有太大的变化。 这甚至可能没有Excel?
我会打开安装像LibreOffice这样的东西,并学习如果这是一个可行的select脚本。
如果使用openxml格式* .xlsx,则可以在不需要安装Office的情况下操作Excel文档。
有几个PowerShell模块(powertools,epplus等)可以用来完成你想要做的事情。 这是一个使用我为Spreadsheetlight编写的powershell包装器的解决scheme:
创build一些CSV文件
Get-Service | Export-Csv -Path c:\temp\Services.csv -NoTypeInformation Get-Process | Export-Csv -Path c:\temp\Processes.csv -NoTypeInformation
创build一个新的Excel文件来保存CSV数据
$doc = New-SLDocument -WorkbookName bigxldoc -Path C:\temp -PassThru -Verbose
将csv文件导入到excel中
Get-ChildItem -Path C:\temp -Filter *.csv | Import-CSVToSLDocument -WorkBookInstance $doc -AutofitColumns -Verbose
保存文档
$doc | Save-SLDocument -Verbose
注意:这只适用于*.xlsx
格式,不适用*.xls
编辑-1
默认情况下,数据导入从Row2,Column2开始,可以轻松更改:
Get-ChildItem -Path C:\temp -Filter *.csv | Import-CSVToSLDocument -WorkBookInstance $doc -ImportStartCell A1 -AutofitColumns -Verbose
删除默认的工作表'Sheet1'
和保存文档
$doc | Remove-SLWorkSheet -WorkSheetName sheet1 -Verbose $doc | Save-SLDocument -Verbose
你也可以findhttps://github.com/dfinke/ImportExcel 。
从例子来看,
gsv | Export-Excel .\test.xlsx -WorkSheetname Services dir -file | Export-Excel .\test.xlsx -WorkSheetname Files