如何使用 PowerShell 將 CSV 匯出到 Excel
- 使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件
- 使用 Excel COM 物件 PowerShell 將 CSV 文件導出到 Excel 文件
-
使用
PSExcel
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 應用程式。
輸出:
使用 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 格式的便利性。
輸出:
使用 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 的綜合指南展示了 PowerShell 在處理數據轉換任務中的靈活性和強大功能。每種探討的方法——Excel COM 物件、ImportExcel
模組和 PSExcel
模組——都提供了獨特的好處,滿足不同環境和需求。
Excel COM 物件是直接與 Excel 在 Windows 環境中互動的堅固選擇,尤其適合複雜的數據操作任務。ImportExcel
和 PSExcel
模組則提供了另一種方法,擴展了 PowerShell 的功能,即使在沒有 Excel 軟體的情況下也能輕鬆處理 Excel 文件。
這些方法不僅強調了 PowerShell 的多功能性,還提供了自動化和簡化數據轉換任務的實用解決方案。無論您是 PowerShell 腳本的新手還是經驗豐富的專業人士,這些方法都提供了寶貴的工具,以提升您在各種情況下的數據處理和報告能力。