如何使用 PowerShell 將 CSV 匯出到 Excel

  1. 使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件
  2. 使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件
  3. 使用 PSExcel PowerShell 將 CSV 文件導出到 Excel 文件
  4. 結論
如何使用 PowerShell 將 CSV 匯出到 Excel

CSV(逗號分隔值)是一種以純文本格式存儲數據的文件,具有表格形式。它包含以逗號或其他分隔符(如分號)分隔的數據列表。

CSV 文件的擴展名為 .csv,可以使用電子表格程序(如 Microsoft Excel)來查看。擁有 .xlsx 擴展名的文件是 Microsoft Excel 工作表文件。

本文深入探討了使用 PowerShell 將 CSV 文件導出到 Excel 的具體方法,涵蓋三種不同的方法:Excel COM 物件、ImportExcel 模組和 PSExcel 模組。每種方法針對不同的場景和需求,提供獨特的優勢。

使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件

Excel COM 物件方法在處理 Windows 環境中的數據轉換和報告時特別有用。此方法非常適合需要自動化將 CSV 數據轉換為更易於使用的 Excel 格式的用戶,該格式在商業和數據分析中被廣泛使用。

腳本:

# Define the CSV file path and the Excel file path
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Start Excel application
$excel = New-Object -ComObject excel.application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.worksheets.Item(1)

# Import CSV data into the worksheet
$row = 1
Import-Csv $csvPath | ForEach-Object {
    $col = 1
    foreach ($value in $_.PSObject.Properties.Value) {
        $worksheet.Cells.Item($row, $col) = $value
        $col++
    }
    $row++
}

# Save and close Excel workbook
$workbook.SaveAs($excelPath)
$excel.Quit()

在這個腳本中,我們首先定義源 CSV 文件和目標 Excel 文件的路徑。然後,我們啟動一個 Excel 應用程式實例,並添加一個只有一個工作表的新工作簿。

Import-Csv cmdlet 讀取 CSV 文件,然後我們使用 ForEach-Object 遍歷每條記錄。在循環內,我們將每個值分配給 Excel 工作表中的相應單元格。

在用 CSV 文件中的所有數據填充工作表之後,我們將工作簿保存到指定路徑並關閉 Excel 應用程式。

輸出:

使用 PowerShell 將 CSV 匯出到 Excel - 輸出 1

使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件

Excel COM 物件方法在處理 Windows 環境中的數據轉換和報告時特別有用。此方法非常適合需要自動化將 CSV 數據轉換為更易於使用的 Excel 格式的用戶,該格式在商業和數據分析中被廣泛使用。

首先,您需要安裝 ImportExcel 模組,如果您還沒有安裝的話。

Install-Module -Name ImportExcel -Force -Scope CurrentUser

腳本:

# Install the ImportExcel module if not already installed
# Install-Module -Name ImportExcel -Scope CurrentUser

# Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Import data from CSV and export to Excel
Import-Csv -Path $csvPath | Export-Excel -Path $excelPath

# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"

在這個腳本中,我們首先檢查 ImportExcel 模組是否已安裝。此模組未在 PowerShell 中默認包含,可能需要使用 Install-Module 從 PowerShell Gallery 進行安裝。

接下來,我們定義源 CSV 和目標 Excel 文件的文件路徑。Import-Csv cmdlet 讀取 CSV 文件,而管道(|)將導入的數據直接傳遞給 Export-Excel cmdlet,該 cmdlet 在指定位置創建 Excel 文件。

這個腳本旨在簡單高效,使得新手也能輕鬆使用 PowerShell 腳本。它有效地演示了使用 PowerShell 將數據從 CSV 轉換為 Excel 格式的便利性。

輸出:

使用 PowerShell 將 CSV 匯出到 Excel - 輸出 2

使用 PSExcel PowerShell 將 CSV 文件導出到 Excel 文件

PSExcel 模組利用 PowerShell 的功能與 Excel 文件互動,而無需在系統上安裝 Excel。這使得它在無法安裝 Excel 的環境中特別有用,例如在伺服器或自動化系統上。

PSExcel 被廣泛用於報告生成、數據分析和將數據轉換為更易於呈現和訪問的格式(如 Excel)等任務。

首先,您需要安裝 PSExcel 模組,如果您還沒有安裝的話。

Install-Module -Name PSExcel -Force -Scope CurrentUser

腳本:

#Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Import data from CSV
$csvData = Import-Csv -Path $csvPath

# Export data to Excel
$csvData | Export-Excel -Path $excelPath

# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"

在這個腳本中,我們首先確保 PSExcel 模組已安裝。此模組並未在 PowerShell 中預設包含,可以從 PowerShell Gallery 進行安裝。

然後,我們定義源 CSV 文件和目標 Excel 文件的路徑。使用 Import-Csv cmdlet 將 CSV 文件讀取到一個變數中。

這個導入的數據接著被傳遞到 Export-Excel cmdlet,該 cmdlet 在指定位置創建 Excel 文件。

輸出:

使用 PowerShell 將 CSV 匯出到 Excel - 輸出 3

結論

這篇有關使用 PowerShell 將 CSV 文件導出到 Excel 的綜合指南展示了 PowerShell 在處理數據轉換任務中的靈活性和強大功能。每種探討的方法——Excel COM 物件、ImportExcel 模組和 PSExcel 模組——都提供了獨特的好處,滿足不同環境和需求。

Excel COM 物件是直接與 Excel 在 Windows 環境中互動的堅固選擇,尤其適合複雜的數據操作任務。ImportExcelPSExcel 模組則提供了另一種方法,擴展了 PowerShell 的功能,即使在沒有 Excel 軟體的情況下也能輕鬆處理 Excel 文件。

這些方法不僅強調了 PowerShell 的多功能性,還提供了自動化和簡化數據轉換任務的實用解決方案。無論您是 PowerShell 腳本的新手還是經驗豐富的專業人士,這些方法都提供了寶貴的工具,以提升您在各種情況下的數據處理和報告能力。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell Export