Tự động hóa PowerShell Excel

Bạn có muốn nâng kỹ năng Excel của mình lên một tầm cao mới không? . Hoặc có thể bạn cần xử lý nhiều tệp thật nhanh, lặp đi lặp lại. Có thể tự động hóa Powershell với Microsoft Excel

Trong video này, bạn sẽ thấy cách bạn có thể cập nhật sổ làm việc và trang tính Excel bằng tập lệnh Powershell

Excel có giao diện COM là công nghệ do Microsoft phát triển (tất nhiên). Tôi chưa bao giờ đọc một lời giải thích tuyệt vời nào về COM nhưng về cơ bản, nó cho phép giao tiếp giữa ngôn ngữ lập trình và ứng dụng Windows. Ngay cả khi ứng dụng không được xây dựng bằng ngôn ngữ lập trình. Powershell giống một ngôn ngữ kịch bản hơn, nhưng chúng ta có thể kết nối với giao diện COM của Excel như nhau

Thông qua giao diện COM này, Excel hiển thị Mô hình Đối tượng Excel. Tôi đã liên kết bạn với các tài liệu hiện tại, nhưng liên kết đó có thể sẽ chết sau sáu tháng nữa - vì Microsoft. Ngoài ra, các ví dụ được hiển thị cho Mô hình Đối tượng Excel sử dụng thứ gọi là Visual Basic for Applications. Đó là điều tôi đã học được khoảng 5 phút trước khi tôi đang cố gắng tìm tài liệu tham khảo Mô hình Đối tượng Excel chung chung cũ. Rõ ràng nó không tồn tại nữa. Một lần nữa, vì Microsoft. Tôi ước mình có thể cung cấp thêm thông tin chi tiết và trợ giúp nhưng - Microsoft. Tuy nhiên, bạn có thể sử dụng tập lệnh bên dưới để tạo và cập nhật sổ làm việc và trang tính. Bạn cũng có thể khám phá các thuộc tính của đối tượng excel với Get-Member để tìm hiểu thêm về các tùy chọn có sẵn

Bạn có thể tìm thấy tệp ở đây trên GitHub hoặc xem nguồn bên dưới


#None of this will work through an already open excel application
#You must open Excel and workbooks you want to manipulate via the COMobject

####################################################
############### Starting Excel #####################
####################################################

$Excel = New-Object -ComObject Excel.Application

$Excel.Visible = $true
$Excel.DisplayAlerts = $false

####################################################
############## Working with Workbooks ##############
####################################################

#Add a workbook to your current excel file
#You can add multiple workbooks with this method
$Excel.Workbooks.Add()

#Find all the workbooks in your excel file by name
$Excel.Workbooks | Select-Object -ExpandProperty name

#Activate a specifc workbook in your excel file
$Excel.Workbooks.Item(2).activate()
$Excel.Workbooks.Item("book1").activate()

#Acivate Random Workbook in Excel file
$Excel.Workbooks.Item((Get-Random -min 1 -Max ($Excel.Workbooks.Count+1))).activate()

#Open an existing workbook on your hardrive
$Excel.Workbooks.Open("$env:userprofile\desktop\mrpowerscripts.xlsx")

#close workbooks from an excel file
$Excel.Workbooks.Item(1).close()
$Excel.Workbooks.Item("MrPowerScripts.xlsx").close()

#Save workbooks to the hard drive
$Excel.Workbooks.item(1).SaveAs("$env:userprofile\Desktop\asdf.xlsx")


####################################################
########### Working with Worksheets ################
####################################################

#These bits of code will affect the active Workbook.

#Add a worksheet to your active workbook
$Excel.Worksheets.Add()

#Find all worksheets in your active workbook
$Excel.Worksheets | Select-Object -ExpandProperty name

#Change name of worksheet in workbook
$Excel.Worksheets.Item(1).name = "potato"
$Excel.Worksheets.Item("potato").name = "spud"

#Activate specific worksheet in workbook
$Excel.Worksheets.Item(2).activate()
$Excel.Worksheets.Item("sheet3").activate()

#Acivate Random Worksheet in Excel file
$Excel.Worksheets.Item((Get-Random -min 1 -Max ($Excel.Worksheets.Count+1))).activate()

#Delete worksheets from workbook
$Excel.Worksheets.Item(1).delete()
$Excel.Worksheets.Item("Sheet3").delete()


####################################################
########## Cleaning up the environment #############
####################################################

$Excel.Workbooks.Close()
$Excel.Quit()

#Check and you will see an excel process still exists after quitting
#Remove the excel process by piping it to stop-process
Get-Process excel | Stop-Process -Force

#Now we must release the $excel com object to ready it for garbage collection
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)


Bạn có một số suy nghĩ về nội dung này? . Nếu bạn thích nội dung, hãy xem những cách bạn có thể hỗ trợ trang web

PowerShell có thể tương tác với 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 .

Bạn có thể tạo tệp Excel trong Power Automate không?

Ghi chú. rất khó để tạo tệp Excel bằng Power Automate . Nếu bạn cần một mẫu mới mỗi lần, bạn nên cân nhắc tạo một mẫu Excel trống và lưu nó ở đâu đó trong SharePoint/OneDrive và chỉ cần tạo một bản sao của tệp này bất cứ khi nào bạn cần.

PowerShell có được sử dụng để tự động hóa không?

PowerShell có thể được sử dụng để tự động hóa các tác vụ chẳng hạn như quản lý người dùng, CI/CD, quản lý tài nguyên đám mây, v.v. Bạn sẽ học cách chạy các lệnh, cách tìm hiểu thêm về PowerShell cũng như cách tạo và chạy các tệp tập lệnh.