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