PowerShell không đi kèm với hỗ trợ riêng cho. các tệp xlsx mặc dù. Đó là lý do tại sao trước đây người dùng sử dụng cách xuất dữ liệu excel sang csv, sau đó sử dụng
Install-Module -Name ImportExcel -Force
2 để đọc dữ liệu đã xuất vào PowerShellCách giải quyết này tạo ra nhiều công việc hơn và có một số nhược điểm khác. Nhờ có mô-đun miễn phí ImportExcel, việc đi thêm tuyến đường qua csv không còn cần thiết nữa. Bây giờ bạn có thể trực tiếp đọc và viết. dữ liệu xlsx. Microsoft Office không bắt buộc
Trong bài viết này, bạn sẽ học cách đọc và viết. xlsx và. xlsm chỉ trong một dòng mã. Ngoài ra, tôi cung cấp cho bạn
Install-Module -Name ImportExcel -Force
3, một chức năng thông minh giúp tự động chuyển đổi. tập tin xls để. xlsx và. các loại tệp xlsm. Điều đó quan trọng vì ImportExcel chỉ có thể xử lý các giao diện hiện đại. xlsx và. các loại tệp xlsm. càng già. tệp excel xls sử dụng định dạng nhị phân độc quyền mà chỉ excel mới biết cách đọc3 có thể rất hữu ích khi bạn cần chuyển đổi hàng loạt tệp excel cũ sang định dạng hiện đạiInstall-Module -Name ImportExcel -Force
Nó cũng minh họa cách truy cập mô hình đối tượng excel và quan trọng hơn là cách giải phóng các đối tượng COM để bạn không bị rò rỉ bộ nhớ và quá trình ma
Thêm hỗ trợ Excel vào PowerShell
Cảm ơn Doug Finke và mô-đun miễn phí tuyệt vời của anh ấy ImportExcel, đọc và viết. xlsx bây giờ rất nhanh - không cần cài đặt Office. Chỉ cần tải xuống và cài đặt mô-đun miễn phí này từ Thư viện PowerShell
Install-Module -Name ImportExcel -Scope CurrentUser -Force
Nếu bạn có sẵn đặc quyền của Quản trị viên, bạn có thể muốn cài đặt mô-đun cho Tất cả người dùng để thay thế. Điều này đảm bảo mô-đun khả dụng cho tất cả người dùng, nhưng quan trọng hơn, nó làm cho mô-đun khả dụng cho cả Windows PowerShell và PowerShell 7
Install-Module -Name ImportExcel -Force
Khi bạn cài đặt các mô-đun trong phạm vi Người dùng hiện tại, các mô-đun chỉ khả dụng cho phiên bản PowerShell mà bạn đã sử dụng để thực hiện cài đặt, do đó, bạn sẽ phải cài đặt mô-đun hai lần ở các vị trí khác nhau
Đọc và ghi tệp Excel
Hai lệnh ghép ngắn quan trọng nhất từ mô-đun này là
5. có một đường dẫn đến một. xlsx và trả về tất cả dữ liệu từ trang tính mặc định. Sử dụng tham số -WorksheetName để chỉ định một trang tính nhất định. Ví dụInstall-Module -Name ImportExcel -Force
# import excel file and show in gridview [make sure file exists!] $Path = "c:\path\to\some\excel.xlsx" Import-Excel -Path $Path | Out-GridView
6. lưu tất cả dữ liệu đường ống vào *. tập tin xlsx. Sử dụng tham số -WorksheetName để chỉ định một trang tính nhất định. Theo mặc định, dữ liệu hiện có trên trang tính sẽ bị ghi đè. Ví dụInstall-Module -Name ImportExcel -Force
________số 8
Chơi với dữ liệu mẫu
Hãy chơi với các lệnh excel mới. Viết file excel đơn giản. chuyển dữ liệu sang
Install-Module -Name ImportExcel -Force
6 để tạo tệp excel mớiInstall-Module -Name ImportExcel -Force
0Để chơi với
Install-Module -Name ImportExcel -Force
5, trước tiên hãy truy xuất một số tệp dữ liệu mẫu trong thế giới thựcTải xuống dữ liệu mẫu
Tìm dữ liệu mẫu excel thật dễ dàng. chỉ cần google cho Tải xuống dữ liệu mẫu Excel để tìm ra các url. Chúng đến dưới dạng các tệp riêng lẻ và kho lưu trữ ZIP. Để mang lại trải nghiệm thú vị khi tải xuống, tôi đã tạo một loạt chức năng trợ giúp
Để tải xuống tệp, chỉ cần sử dụng
Install-Module -Name ImportExcel -Force
9 và # import excel file and show in gridview [make sure file exists!]
$Path = "c:\path\to\some\excel.xlsx"
Import-Excel -Path $Path | Out-GridView
0Install-Module -Name ImportExcel -Force
4Khi bạn chạy mã này, nó sẽ tải xuống một loạt tệp mẫu excel
Install-Module -Name ImportExcel -Force
5Đọc tệp Excel
Để đọc dữ liệu trực tiếp từ tệp excel, hãy sử dụng
Install-Module -Name ImportExcel -Force
5. Ví dụ: để chỉ nhận dữ liệu tài chính cho tháng 12, hãy thử điều nàyInstall-Module -Name ImportExcel -Force
7Theo mặc định,
5 đọc dữ liệu từ trang tính đầu tiên. Nếu tệp của bạn chứa nhiều hơn một trang tính, hãy sử dụng tham số -WorksheetName để chỉ định tên của nóInstall-Module -Name ImportExcel -Force
Để nhóm các quốc gia cho tháng 12, chỉ cần sử dụng các lệnh ghép ngắn đường ống PowerShell phổ biến
Rõ ràng, bạn cũng có thể làm điều này trực tiếp với excel. Đây là về tự động hóa [trong trường hợp bạn cần thực hiện các loại phân tích này thường xuyên] và dành cho các chàng trai nhà PowerShell, những người có thể không biết cách xoay vòng trong excel nhưng biết các công cụ của họ trong PowerShell
Và đó là về việc học. không có cách nào tốt hơn để tìm hiểu các lệnh ghép ngắn đường ống PowerShell
Install-Module -Name ImportExcel -Force
9Đây là kết quả
Install-Module -Name ImportExcel -Force
0Truy cập tệp XLS
Tin xấu là. . tệp xls không thể truy cập được. Họ sử dụng định dạng nhị phân độc quyền mà chỉ excel mới có thể đọc được
Tin tốt là. miễn là bạn đã cài đặt excel, việc chuyển đổi là chuyện nhỏ. tập tin xls để. tập tin xlsx. Nếu bạn thực sự vẫn đang sử dụng. xls, bạn nên xem xét việc chuyển đổi này mãi mãi. . xls đã thực sự lỗi thời và không còn được sử dụng nữa
Chuyển đổi XLS sang XLSX
Ở trên tôi đã tải xuống một loạt. xls không thể được xử lý bởi
Install-Module -Name ImportExcel -Force
5. đáng tiếcDưới đây là hàm
Install-Module -Name ImportExcel -Force
3 tự động chuyển đổi. tập tin xls để. xlsx và. Tuy nhiên, các tệp xlsm. Tập lệnh yêu cầu cài đặt Microsoft Office trên hộp của bạn vì chỉ excel mới biết cách mở định dạng nhị phân được sử dụng trong. tập tin xlsInstall-Module -Name ImportExcel -Force
0Nó nằm ngoài phạm vi của bài viết này để thảo luận chi tiết về chức năng. Mặc dù vậy, tôi muốn chỉ ra rằng mã minh họa các khía cạnh quan trọng khi sử dụng các đối tượng COM trong PowerShell
Khi sử dụng các đối tượng COM như Excel. Ứng dụng, có thể khó giải phóng tất cả các tham chiếu đối tượng ở cuối. Khi bạn làm điều này sai, các tham chiếu sẽ vẫn tồn tại và quá trình excel trong bộ nhớ cũng vậy. Tất nhiên, bạn luôn có thể tắt tiến trình sau khi sử dụng nhưng điều này có thể làm hỏng excel và lần sau khi bạn khởi chạy, nó sẽ bắt đầu ở chế độ khôi phục
Cách tiếp cận tốt hơn là đảm bảo rằng bạn đang lưu trữ từng tham chiếu đối tượng trong một biến chuyên dụng. Tiếp theo, đảm bảo rằng bạn chủ động giải phóng từng tham chiếu sau khi sử dụng bằng cách gọi ReleaseComObject[]
Khi bạn đã làm đúng, không có tham chiếu mở nào tồn tại và khi bạn gọi Quit[], excel sẽ bị xóa khỏi danh sách quy trình của bạn