如何在不使用Excel的情况下在使用PowerShell的服务器上创build多个.csvs(作为工作表)的.xlsx?

第一次海报。

我想在PowerShell中编写一个脚本在我的服务器上,将执行以下操作:

循环遍历所有位于单个目录中的csvs创build一个包含每个csv的Excel工作簿作为工作表(工作表名称作为文件名)将工作簿保存在指定目录中*** Microsoft Office(因此Excel)在服务器上不存在

任何帮助将非常感谢。

我在下面find,但它不能容纳多个CSV。 如何使用Powershell将CSV导出到Excel

任何帮助将非常感谢。

以下是上一个问题的相关位。您需要将spreadsheetlight模块下载到您的服务器。

创build一个新的xlsx文件

$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 

我认为这个脚本是做你想做的,但是你需要首先从https://epplus.codeplex.com下载EPPlus(免费的.NET库)。 相应地调整你的path。

 Add-Type -Path 'C:\tmp\EPPlus 4.0.4\EPPlus.dll' $pkg = New-Object OfficeOpenXml.ExcelPackage(New-Object System.IO.FileInfo('c:/tmp/csvdemo/book.xlsx')) Get-ChildItem 'c:/tmp/csvdemo/*.csv' |% { [void]$pkg.Workbook.Worksheets.Add($_.Name).Cells.LoadFromText($_) } $pkg.Save() 

一些更多的信息在这里: https : //dontomp.net/read-and-write-excel-workbook-with-powershell/