CSV到未安装Excel的多页XLS。动力壳

CSV到未安装Excel的多页XLS。动力壳,excel,powershell,csv,xls,xlsx,Excel,Powershell,Csv,Xls,Xlsx,我有一个包含多个CSV文件的文件夹。我想把所有这些文件都做成一个XLS(或xlsx),用一张纸表示每个CSV文件 这里的主要区别是Excel未安装,无法安装 我知道我可以使用EPPlus库-。 我也读过使用Access数据库引擎的文章- 我已经用了很多不同的脚本,以传统的方式将CSV转换成XLS,并尝试将它们转换为使用其中一种,但似乎进展不大。如果没有Excel,这可能吗 如果可行的话,我愿意安装LibreOffice之类的软件,并学习使用它编写脚本。如果使用*.xlsx格式,则无需安装offi

我有一个包含多个CSV文件的文件夹。我想把所有这些文件都做成一个XLS(或xlsx),用一张纸表示每个CSV文件

这里的主要区别是Excel未安装,无法安装

我知道我可以使用EPPlus库-。 我也读过使用Access数据库引擎的文章-

我已经用了很多不同的脚本,以传统的方式将CSV转换成XLS,并尝试将它们转换为使用其中一种,但似乎进展不大。如果没有Excel,这可能吗

如果可行的话,我愿意安装LibreOffice之类的软件,并学习使用它编写脚本。

如果使用*.xlsx格式,则无需安装office即可操作excel文档

有几个powershell模块(powertools、epplus等)可以用来完成您想要做的事情。 以下是使用以下方法的解决方案:

创建一些csv文件 创建新的excel文档以保存csv数据 将csv文件导入excel 保存文档 注意:这只适用于
*.xlsx
格式,而不适用于
*.xls

编辑-1 默认情况下,数据导入从第2行第2列开始,可以轻松更改:

Get-ChildItem -Path C:\temp -Filter *.csv | 
    Import-CSVToSLDocument -WorkBookInstance $doc -ImportStartCell A1 -AutofitColumns -Verbose
删除默认工作表
'Sheet1'
并保存文档 你可能也会发现它很有用

从这些例子中,

gsv | Export-Excel .\test.xlsx -WorkSheetname Services

dir -file | Export-Excel .\test.xlsx -WorkSheetname Files
我的最后剧本

# **install-module slpslib**

$outputfilename = $(get-date -f yyyyMMdd) + "_" + "_combined-data.xlsx" #creates file name with date/username

$doc = New-SLDocument -WorkbookName $outputfilename -Path D:\Reports -PassThru -Verbose
Get-ChildItem -Path D:\Reports -Filter *.csv | 
  Import-CSVToSLDocument -WorkBookInstance $doc  -AutofitColumns -Verbose


$doc | Remove-SLWorkSheet -WorkSheetName sheet1 -Verbose

$doc | Save-SLDocument -Verbose

这太棒了!我似乎得到了一张额外的空白纸,“Sheet1”。此外,所有工作表周围似乎都有一个空白列和一行。创建新文档时,需要至少有一个工作表,因此默认情况下会添加“sheet1”,稍后可以将其删除,如上面我编辑的答案中所示。请注意值为A1`的
importstartcell'参数。这告诉excel导入应从A行第1列开始。您可以指定任意值。完美答案。我找不到如何将列从文本转换为数字。可能吗?非常感谢。
$doc | Save-SLDocument -Verbose
Get-ChildItem -Path C:\temp -Filter *.csv | 
    Import-CSVToSLDocument -WorkBookInstance $doc -ImportStartCell A1 -AutofitColumns -Verbose
$doc | Remove-SLWorkSheet -WorkSheetName sheet1 -Verbose
$doc | Save-SLDocument -Verbose
gsv | Export-Excel .\test.xlsx -WorkSheetname Services

dir -file | Export-Excel .\test.xlsx -WorkSheetname Files
# **install-module slpslib**

$outputfilename = $(get-date -f yyyyMMdd) + "_" + "_combined-data.xlsx" #creates file name with date/username

$doc = New-SLDocument -WorkbookName $outputfilename -Path D:\Reports -PassThru -Verbose
Get-ChildItem -Path D:\Reports -Filter *.csv | 
  Import-CSVToSLDocument -WorkBookInstance $doc  -AutofitColumns -Verbose


$doc | Remove-SLWorkSheet -WorkSheetName sheet1 -Verbose

$doc | Save-SLDocument -Verbose