PowerShell có thể đọc các tệp Excel không?

Trước tiên, bạn có thể lưu bảng tính Excel dưới dạng tệp CSV, sau đó sử dụng Nhập-CSV để nhập và sau đó sử dụng nó để đặt thuộc tính AD

Thứ hai, bạn có thể truy cập bảng tính theo chương trình. Cái này khó hơn RẤT NHIỀU. Cân nhắc sử dụng https. //github. com/dfinke/ImportExcel Mở một cửa sổ mới mô-đun

Nó thực sự không khó hơn nhiều và OP có thể tìm thấy nhiều thứ hơn họ có thể làm. Đây là một mồi

AdamTheAutomator Mở một cửa sổ mới. PowerShell và Excel Mở một cửa sổ mới

Tôi nghĩ rằng "khó hơn RẤT NHIỀU" ít nhiều sẽ là về việc thiết lập các điều kiện tiên quyết của bạn để chạy nó, vì OP là mới đối với PowerShell. Chính sách thực thi có thể cần được cập nhật và mô-đun cần được cài đặt. Cũng có thể có vấn đề với cài đặt nếu TLS không được đặt đúng cách, nơi nó có thể không truy cập được vào kho lưu trữ

Mặc dù vậy, tôi không chắc chắn 100% về phần Chính sách thực thi vì nó liên quan đến việc cài đặt một mô-đun và có thể cần phải thay đổi từ mặc định bất kể có sử dụng Import-Excel hay không

https. // tài liệu. Microsoft. com/en-us/powershell/module/microsoft. vỏ bọc quyền lực. bảo mật/thiết lập chính sách thực thi. Mở một cửa sổ mới

Khoảng 1/2 trang sẽ liệt kê các giá trị bạn có thể sử dụng cho Chính sách thực thi và ý nghĩa của chúng

#Get the current execution policy:
Get-ExecutionPolicy

#Set the execution policy (I leave mine at RemoteSigned)
Set-ExecutionPolicy RemoteSigned

Định cấu hình TLS

https. // tài liệu. Microsoft. com/en-us/azure/databox-online/azure-stack-edge-gpu-configure-tls-settings Mở một cửa sổ mới

Tôi chỉ gặp rắc rối với điều này trên một vài máy chủ của mình để có thể cài đặt một mô-đun. Có thể không cần thiết trong môi trường của bạn vì nó có thể đã được đặt đúng cách và có thể chỉ cần thực hiện nếu bạn không thể cài đặt mô-đun ImportExcel

Microsoft Excel là một trong những công cụ phổ biến mà hầu hết chúng ta không thể thoát khỏi ngay cả khi chúng ta đã cố gắng. Nhiều chuyên gia CNTT sử dụng Excel như một cơ sở dữ liệu nhỏ lưu trữ hàng tấn dữ liệu trong các quy trình tự động hóa khác nhau. Kịch bản tốt nhất cho tự động hóa và Excel là gì?

Bảng tính Excel luôn nổi tiếng là khó viết kịch bản và tự động hóa. Không giống như đối tác tệp CSV ít tính năng hơn (và đơn giản hơn), sổ làm việc Excel không chỉ là tệp văn bản đơn giản. Sổ làm việc Excel yêu cầu PowerShell để thao tác các đối tượng Mô hình Đối tượng Thành phần (COM) phức tạp, do đó bạn phải cài đặt Excel. không còn nữa

Rất may, một thành viên cộng đồng PowerShell sắc sảo, Doug Finke, đã tạo một mô-đun PowerShell có tên là ImportExcel cho chúng tôi. Mô-đun ImportExcel tóm tắt tất cả sự phức tạp đó. Nó giúp bạn có thể dễ dàng quản lý sổ làm việc Excel và chuyển sang tập lệnh PowerShell

Trong bài viết này, hãy khám phá những gì bạn có thể làm với PowerShell và Excel bằng cách sử dụng mô-đun ImportExcel và một số trường hợp sử dụng phổ biến

Mục lục

điều kiện tiên quyết

Khi chạy mô-đun ImportExcel trên hệ thống Windows, không cần phụ thuộc riêng. Tuy nhiên, nếu bạn đang làm việc trên macOS, bạn sẽ cần cài đặt gói mono-libgdiplus bằng cách sử dụng

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
1. Tất cả các ví dụ trong bài viết này sẽ được xây dựng bằng macOS nhưng tất cả các ví dụ sẽ hoạt động trên nhiều nền tảng

Nếu bạn đang sử dụng macOS, hãy nhớ khởi động lại phiên PowerShell trước khi tiếp tục

Cài đặt mô-đun ImportExcel

Bắt đầu bằng cách tải xuống và cài đặt mô-đun qua Thư viện PowerShell bằng cách chạy

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
2. Sau một lúc, bạn sẽ sẵn sàng để đi

Sử dụng PowerShell và Excel để xuất sang một trang tính

Bạn có thể quen thuộc với các lệnh ghép ngắn PowerShell tiêu chuẩn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
3 và
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
4. Các lệnh ghép ngắn này cho phép bạn đọc và xuất các đối tượng PowerShell sang tệp CSV. Thật không may, không có lệnh ghép ngắn
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 và
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6. Nhưng bằng cách sử dụng mô-đun ImportExcel, bạn có thể xây dựng chức năng của riêng mình

Có liên quan. Quản lý tệp CSV trong PowerShell bằng Import-Csv

Một trong những yêu cầu phổ biến nhất mà quản trị viên hệ thống có là xuất các đối tượng PowerShell sang trang tính Excel. Sử dụng lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 trong mô-đun ImportExcel, bạn có thể dễ dàng thực hiện điều đó

Ví dụ: có lẽ bạn cần tìm một số quy trình đang chạy trên máy tính cục bộ của mình và đưa chúng vào sổ làm việc Excel

Lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 chấp nhận bất kỳ đối tượng nào chính xác theo cách mà
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
9 thực hiện. Bạn có thể đưa bất kỳ loại đối tượng nào vào lệnh ghép ngắn này

Để tìm các quy trình đang chạy trên hệ thống với PowerShell, hãy sử dụng lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
00 trả về từng quy trình đang chạy và nhiều thông tin khác nhau về từng quy trình. Để xuất thông tin đó sang Excel, hãy sử dụng lệnh ghép ngắn
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 cung cấp đường dẫn tệp tới sổ làm việc Excel sẽ được tạo. Bạn có thể xem ví dụ về lệnh và ảnh chụp màn hình của tệp Excel được tạo bên dưới

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
2

PowerShell có thể đọc các tệp Excel không?
Trang tính được tạo bằng PowerShell và Excel

chúc mừng. Bây giờ bạn đã xuất tất cả thông tin giống như

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
3, nhưng không giống như
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
3, chúng tôi có thể làm cho dữ liệu này đẹp hơn rất nhiều. Hãy đảm bảo rằng tên trang tính được gọi là Quy trình, dữ liệu nằm trong bảng và các hàng có kích thước tự động

Bằng cách sử dụng tham số chuyển đổi

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
04 để tự động định cỡ tất cả các hàng,
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
05 để chỉ định tên của bảng sẽ bao gồm tất cả dữ liệu và tên tham số
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
06 của Quy trình, bạn có thể xem trong ảnh chụp màn hình bên dưới những gì có thể được tạo

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses

PowerShell có thể đọc các tệp Excel không?
Kết quả thông số chuyển đổi kích thước tự động

Lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 có rất nhiều tham số mà bạn có thể sử dụng để tạo các loại sổ làm việc Excel. Để biết tóm tắt đầy đủ về mọi thứ mà
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5 có thể làm, hãy chạy
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
09

Sử dụng PowerShell để nhập vào Excel

Vì vậy, bạn đã xuất một số thông tin sang một tệp có tên là các quy trình. xlsx ở phần trước. Có lẽ bây giờ bạn cần di chuyển tệp này sang máy tính khác và nhập/đọc thông tin này bằng PowerShell và Excel. Không vấn đề gì. Bạn có

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6 theo ý của bạn

Ở cách sử dụng cơ bản nhất, bạn chỉ cần cung cấp đường dẫn đến tài liệu/sổ làm việc Excel bằng cách sử dụng tham số

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
31 như hình bên dưới. Bạn sẽ thấy rằng nó đọc trang tính đầu tiên, trong trường hợp này là trang tính Quy trình và trả về các đối tượng PowerShell

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
0

PowerShell có thể đọc các tệp Excel không?
Tham số đường dẫn

Có thể bạn có nhiều trang tính trong sổ làm việc Excel?

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
3

Bạn có cần chỉ đọc một số cột nhất định trong trang tính Excel không?

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
8

Lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6 có các tham số khác mà bạn có thể sử dụng để đọc các loại sổ làm việc Excel. Để biết tóm tắt đầy đủ về mọi thứ mà
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6 có thể làm, hãy chạy
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
36

Sử dụng PowerShell để nhận (và đặt) giá trị ô Excel

Bây giờ bạn đã biết cách đọc toàn bộ trang tính bằng PowerShell và Excel, nhưng nếu bạn chỉ cần một giá trị ô thì sao?

Thay vào đó, bằng cách sử dụng lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
39, bạn có thể “chuyển đổi” sổ làm việc Excel thành đối tượng PowerShell mà sau đó có thể đọc và thao tác. Để tìm một giá trị ô, trước tiên, hãy mở sổ làm việc Excel để đưa nó vào bộ nhớ

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
5

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
39 tương tự như sử dụng
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
81 nếu làm việc trực tiếp với các đối tượng COM

Tiếp theo, chọn trang tính bên trong sổ làm việc

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
8

Quá trình này tương tự như cách đối tượng COM mở sổ làm việc với

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
82

Khi bạn đã gán trang tính cho một biến, bây giờ bạn có thể xem chi tiết từng hàng, cột và ô. Có lẽ bạn cần tìm tất cả các giá trị ô trong hàng A1. Bạn chỉ cần tham khảo thuộc tính

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
83 cung cấp chỉ số A1 như hình bên dưới

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
1

Bạn cũng có thể thay đổi giá trị của các ô trong trang tính bằng cách gán một giá trị khác, ví dụ:.

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
84

Khi đã ở trong bộ nhớ, điều quan trọng là phải giải phóng gói Excel bằng cách sử dụng lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
85

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
4

Chuyển đổi trang tính thành tệp CSV bằng PowerShell và Excel

Sau khi bạn có nội dung của một trang tính Excel được biểu diễn qua các đối tượng PowerShell, việc “chuyển đổi” các trang tính Excel sang CSV chỉ cần gửi các đối tượng đó đến lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
3

Có liên quan. Xuất-Csv. Chuyển đổi đối tượng thành tệp CSV

Sử dụng các quy trình. xlsx đã tạo trước đó, hãy đọc trang tính đầu tiên chứa tất cả dữ liệu vào các đối tượng PowerShell, sau đó xuất các đối tượng đó sang CSV bằng cách sử dụng lệnh bên dưới

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6

Nếu bây giờ bạn mở tệp CSV kết quả, bạn sẽ thấy cùng một dữ liệu bên trong trang tính Quy trình (trong ví dụ này)

Chuyển đổi nhiều trang tính

Nếu bạn có sổ làm việc Excel với nhiều trang tính, bạn cũng có thể tạo tệp CSV cho từng trang tính. Để làm như vậy, bạn có thể tìm thấy tất cả các trang tính trong sổ làm việc bằng cách sử dụng lệnh ghép ngắn

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
87. Khi bạn có tên trang tính, bạn có thể chuyển các tên đó cho tham số
Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
06 và cũng có thể sử dụng tên trang tính làm tên của tệp CSV

Dưới đây bạn có thể mã ví dụ cần thiết bằng PowerShell và Excel

Get-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
0

Phần kết luận

Sử dụng PowerShell và Excel, bạn có thể nhập, xuất và quản lý dữ liệu trong sổ làm việc Excel giống hệt như CSV mà không cần phải cài đặt Excel

Trong bài viết này, bạn đã học những kiến ​​thức cơ bản về đọc và ghi dữ liệu trong sổ làm việc Excel nhưng điều này mới chỉ là bề nổi. Sử dụng PowerShell và mô-đun ImportExcel, bạn có thể tạo biểu đồ, bảng tổng hợp và tận dụng các tính năng mạnh mẽ khác của Excel

Ghét quảng cáo?

Khám phá sách hướng dẫn ATA

Thông tin khác từ ATA Learning & Partners

  • PowerShell có thể đọc các tệp Excel không?

    Tài nguyên được đề xuất

    Tài nguyên được đề xuất cho đào tạo, bảo mật thông tin, tự động hóa, v.v.

  • PowerShell có thể đọc các tệp Excel không?

    Được trả tiền để viết

    ATA Learning luôn tìm kiếm những người hướng dẫn ở mọi cấp độ kinh nghiệm. Bất kể bạn là quản trị viên cấp dưới hay kiến ​​trúc sư hệ thống, bạn đều có điều gì đó để chia sẻ. Tại sao không viết trên một nền tảng có khán giả hiện có và chia sẻ kiến ​​thức của bạn với mọi người?

  • PowerShell có thể đọc các tệp Excel không?

    Sách hướng dẫn học tập ATA

    ATA Learning được biết đến với các hướng dẫn bằng văn bản chất lượng cao dưới dạng các bài đăng trên blog. Hỗ trợ Học tập ATA với sách điện tử PDF Sách hướng dẫn ATA khả dụng ngoại tuyến và không có quảng cáo

    PowerShell có thể đọc từ Excel không?

    Xuất và nhập vào và từ Excel bằng mô-đun PowerShell ImportExcel. ImportExcel là mô-đun PowerShell cho phép bạn nhập hoặc xuất dữ liệu trực tiếp từ bảng tính Excel mà không cần cài đặt Microsoft Excel trên máy tính .

    Làm cách nào để lấy dữ liệu từ Excel bằng PowerShell?

    Bạn có thể đọc bảng tính Excel bằng các đối tượng COM từ powershell. .
    $Tệp = "C. \gpo. xlsx"
    $Excel = Đối tượng mới -ComObject Excel. Đăng kí
    $WorkBook = $Excel. sách bài tập. .
    $WorkSheet = $WorkBook. bảng tính. .
    $UsedRange = $WorkSheet. Phạm vi đã sử dụng
    $Rows = $UsedRange. hàng. .
    $Objs = @()
    for($Row=2; $Row -le $Rows; $Row++){

    PowerShell có thể tự động hóa Excel không?

    Trong bài viết này, chúng ta sẽ tìm hiểu cách thao tác với các hàng và cột trong Excel để tự động tạo báo cáo lặp lại trong ps (PowerShell) . Tháng trước tôi được giao dự án tự động hóa báo cáo tổng kết tài chính hàng tháng. Và đó là khi tôi bắt gặp ps, một cách tuyệt vời để tự động hóa mọi thứ và mọi thứ.

    Những chương trình nào có thể đọc các tệp Excel?

    Trình xem Microsoft Excel là một chương trình nhỏ, có thể phân phối lại miễn phí cho phép bạn xem và in các bảng tính Microsoft Excel nếu bạn chưa cài đặt Excel. Ngoài ra, Trình xem Excel có thể mở sổ làm việc đã được tạo trong Microsoft Excel cho Macintosh.