【问题标题】:Import CSV File to a new Excel Worksheet within an existing Excel Workbook将 CSV 文件导入现有 Excel 工作簿中的新 Excel 工作表
【发布时间】:2019-10-10 08:15:25
【问题描述】:

我正在尝试将 2 个不同的 CSV 文件导入到 2 个不同工作表上的 excel 工作簿中。

我已经弄清楚如何创建一个 excel 工作簿并导入其中一个 CSV 文件。但是在创建新工作表时,我似乎无法像导入第一个 CSV 文件一样将第二个 CSV 文件导入到新工作表中。

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$Excel = $Excel.Workbooks.open(C:\Temp\CSVfile1.csv)

#Create new worksheet and import 2nd CSV file
$Excel.Worksheets.add()
$Excel.Sheets(1).Name = 'Errors'
$Excel2 = $Excel.Workbooks.open(C:\Temp\CSVfile2.csv)

第一个 CSV 文件导入成功。第 2 个工作表已创建,但未导入第 2 个 csv 文件。

显示的错误信息是

You cannot call a method on a null-valued expression.

【问题讨论】:

    标签: powershell


    【解决方案1】:

    我强烈建议对任何与 Excel 相关的文件使用 ImportExcel 模块,它使它们更易于使用,并且只需几秒钟即可使其正常工作。此外,它还具有无需安装 Microsoft Excel 即可使用读取和编辑 Excel 文件的好处。

    请参阅以下示例以使用 ImportExcel 模块执行您正在寻找的操作:

    Import-Csv -Path 'C:\Temp\CSVfile1.csv' | Export-Excel -Path 'C:\Temp\ExportExcelTest.xlsx' -WorkSheetname 'Sheet1'
    Import-Csv -Path 'C:\Temp\CSVfile2.csv' | Export-Excel -Path 'C:\Temp\ExportExcelTest.xlsx' -WorkSheetname 'Errors'
    

    此外,ImportExcel 还附带许多可能对您有用的格式选项。与使用 ComObject 修改 Excel 文件相比,我再怎么推荐也不为过。

    【讨论】:

    • Here is a link to the PowerShell Gallery site 用于模块。确实做得很好。
    • @Floogen 感谢您提供有关模块的信息,但我正在尝试在没有任何外部模块的情况下执行此操作。目标是让我环境中的任何管理员都能够仅使用默认的 powershell 资源运行脚本。也很抱歉延迟回复,我刚刚从扩展的 LOA 中返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多