Chào các bạn,
Dạo gần đây mình có tìm hiểu về PowerShell để tự động hóa một số tác vụ với file Excel, thấy khá hay nên muốn chia sẻ với mọi người.
Thực ra, với các tác vụ đơn giản như copy dữ liệu giữa các sheet, đổi tên sheet, hay thậm chí là lọc dữ liệu cơ bản, thì Excel đã có sẵn các công cụ. Tuy nhiên, khi cần xử lý hàng loạt file, hoặc tích hợp vào một quy trình tự động hóa phức tạp hơn, thì việc dùng đến ngôn ngữ lập trình sẽ hiệu quả hơn nhiều.
PowerShell là một lựa chọn khá tiện lợi vì nó có sẵn trên Windows và có thể tương tác trực tiếp với các đối tượng COM của Excel. Dưới đây là một ví dụ đơn giản về cách mở một file Excel, đọc dữ liệu từ một sheet và ghi ra một file mới:
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\Path\To\Your\File.xlsx")
$sheet = $workbook.Sheets.Item(1)
# Đọc dữ liệu từ ô A1
$data = $sheet.Cells.Item(1, 1).Value
# Ghi dữ liệu ra file text
$data | Out-File "C:\Path\To\Output.txt"
$workbook.Close()
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Remove-Variable excel, workbook, sheet
Đây chỉ là một ví dụ rất cơ bản. Với PowerShell, chúng ta có thể làm được nhiều hơn thế, ví dụ như:
- Tự động tạo báo cáo từ nhiều file nguồn.
- Xóa, thêm, sửa dữ liệu theo điều kiện.
- Định dạng file Excel theo mẫu.
- Tích hợp với các tác vụ quản trị hệ thống khác.
Các bạn đã từng dùng PowerShell hay các ngôn ngữ khác như Python, C# để làm việc với Excel chưa? Chia sẻ kinh nghiệm của mình bên dưới nhé!