如何使用PowerShell在没有Excel的服务器上从多个.csvs(作为工作表)创建.xlsx?

时间:2015-10-12 14:26:34

标签: excel powershell csv

第一次发布海报。

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

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

任何帮助都会非常感激。

我在下面找到了,但它不能容纳多个csv。 How to export a CSV to Excel using Powershell

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

此模块https://github.com/dfinke/ImportExcel将允许您在不加载Excel的情况下读取/写入Excel文件(具有多个页面和格式)。

答案 1 :(得分:0)

我认为这个脚本可以满足您的需求,但您需要先从https://epplus.codeplex.com下载EPPlus(免费的.NET库)。相应地调整路径。

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/

答案 2 :(得分:0)

以下是previous question的相关位。您需要将spreadsheetlight模块下载到您的服务器。

创建新的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