我有一个包含多个CSV文件的文件夹。我想将所有这些都制作成带有代表每个CSV文件的表格的XLS(或xlsx)。
这里的主要区别是尚未安装Excel,也无法安装Excel。
我了解我也许可以使用EPPlus库-http://epplus.codeplex.com/。我还阅读了有关使用Access数据库引擎-http://www.microsoft.com/en-us/download/details.aspx?id=13255的信息。
我经历了许多不同的脚本,以传统方式将CSV转换为XLS,并尝试将它们转换为使用其中一种,但似乎还没有走得太远。如果没有Excel,这甚至可能吗?
如果可行的话,我愿意安装类似LibreOffice的工具,并学习编写脚本。
如果使用openxml格式* .xlsx,则无需安装Office就可以处理excel文档。
有一些powershell模块(powertools,epplus等)可用于完成您想做的事情。这是使用powershell wrapper that I wrote for Spreadsheetlight的解决方案:
Get-Service | Export-Csv -Path c:\temp\Services.csv -NoTypeInformation
Get-Process | Export-Csv -Path c:\temp\Processes.csv -NoTypeInformation
$doc = New-SLDocument -WorkbookName bigxldoc -Path C:\temp -PassThru -Verbose
Get-ChildItem -Path C:\temp -Filter *.csv |
Import-CSVToSLDocument -WorkBookInstance $doc -AutofitColumns -Verbose
$doc | Save-SLDocument -Verbose
注意:这仅适用于*.xlsx
格式,不适用于*.xls
默认情况下,数据导入从第2行,第2列开始,可以轻松更改:
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
您可能还会发现https://github.com/dfinke/ImportExcel有用。
从示例中,
gsv | Export-Excel .\test.xlsx -WorkSheetname Services
dir -file | Export-Excel .\test.xlsx -WorkSheetname Files
抱歉,这是Kira的问题,但我无法发表评论,因此我必须这样写。抱歉,您能否解释一下-PassThru,-Verbose和-AutofitColumns参数的作用?脚本工作正常,但我不太了解您是如何做到的。