Sau khi mở cùng một bảng tính Excel để lưu dữ liệu dưới dạng CSV lần thứ ba, tôi đã viết một tập lệnh PowerShell để làm điều đó cho mình
Chỉ cần đặt các tệp nguồn và đích và tập lệnh sẽ lo phần còn lại
& {
$sourceFile = "C:\Temp\data.xlsx"
$outFile = "C:\Temp\data.csv"
$excelApplication = New-Object -ComObject Excel.Application
try {
$excelApplication.visible = $false;
$excelApplication.DisplayAlerts = $false
$workbook = $excelApplication.Workbooks.Open[$sourceFile]
$workbook.WorkSheets.item["MySheetName"].Activate[]
$workbook.SaveAs[$outFile, [Microsoft.Office.Interop.Excel.XlFileFormat]::xlCSV]
$workbook.Close[]
} finally {
$excelApplication.Quit[]
}
}
thẻ
- Excel
- PowerShell
Thể loại
- Văn phòng
- lập trình
Nhóm Microsoft. Đặt câu hỏi với Polly
Viết bởi Steve Fenton .
Thứ Tư, ngày 17 tháng 2 năm 2021Microsoft Teams - Những gì Microsoft đã dạy tôi trong tuần này
Viết bởi Steve Fenton .
Thứ Ba, ngày 17 tháng 3 năm 2020
Đối với tập lệnh EXCEL_TO_CSV_ALLTABS. ps1, nơi chúng tôi chuyển đổi tất cả các tab của tệp Excel, chỉ cần nhập tên thư mục, tên tệp và định dạng tệp. Tập lệnh sử dụng chức năng để chuyển đổi các tệp Excel có định dạng XLSX sang CSV, tuy nhiên định dạng này có thể được thay đổi trong tập lệnh
Nếu muốn, bạn có thể thay đổi thư mục và tên tệp của mình
# Defines the directory where the file is located $dir = "D:\" # Defines the name of the Excel file $excelFileName = "YOUR_FILE_NAME"
Đối với tập lệnh thứ hai EXCEL_TO_CSV. ps1, nơi chúng tôi chỉ chuyển đổi một tab của tệp Excel, chỉ cần nhập tên của thư mục và tên của tệp trong tập lệnh bên dưới
Trong môi trường BI, chúng tôi tìm thấy rất nhiều dữ liệu không được lưu trữ trong cơ sở dữ liệu và cũng có rất nhiều người dùng dễ dàng và thích lưu trữ dữ liệu trong bảng tính Excel. Vì vậy, trong bài đăng này, tôi sẽ chỉ cho bạn cách chuyển đổi tệp Excel bằng tập lệnh PowerShell
Thực tế đây là một quy trình rất dễ dàng, chúng ta có thể chuyển đổi tất cả các tab trong Excel hoặc chỉ chuyển đổi một tab duy nhất. Vì vậy, theo cách đó, khi chuyển đổi sang tệp CSV, tệp có thể dễ dàng được thêm vào cơ sở dữ liệu thông qua quy trình hoặc công cụ ETL, thay vì tệp Excel gốc.
Đối với tập lệnh đầu tiên, nơi chúng tôi chuyển đổi tất cả các tab của tệp Excel, chỉ cần nhập tên thư mục, tên tệp và định dạng tệp vào tập lệnh bên dưới.
Tập lệnh sử dụng chức năng để chuyển đổi các tệp Excel có định dạng XLSX sang CSV, tuy nhiên định dạng này có thể được thay đổi trong tập lệnh
# To execute the script without agreeing with the execution policy
Set-ExecutionPolicy Bypass -Scope Process# Defines the directory where the file is located
$dir = "D:\"
# Defines the name of the Excel file
$excelFileName = "YOUR_FILE_NAME"
# Define a function to convert the file
Function ExportWSToCSV [$excelFileName, $csvLoc]
{
$excelFile = $dir + $excelFileName + ".xlsx"
$E = New-Object -ComObject Excel.Application
$E.Visible = $false
$E.DisplayAlerts = $false
$wb = $E.Workbooks.Open[$excelFile]
foreach [$ws in $wb.Worksheets]
{
$n = $excelFileName + "_" + $WS.Name
$ws.SaveAs[$csvLoc + $n + ".csv", 6]
}
$E.Quit[]
}
# For each file in the directory with the xlsx format, convert to CSV using the function above
$ens = Get-ChildItem $dir -filter *.xlsx
foreach[$e in $ens]
{
ExportWSToCSV -excelFileName $e.BaseName -csvLoc $dir
}
Đối với tập lệnh thứ hai, nơi chúng tôi chỉ chuyển đổi một tab của tệp Excel, chỉ cần nhập tên của thư mục và tên của tệp trong tập lệnh bên dưới