Lớp Để truy cập dữ liệu tệp Excel, bạn phải biết cấu trúc phân cấp của từng thành phần/lớp. Phần tử đầu tiên sẽ là lớp ứng dụng (ở trên cùng) chứa một hoặc nhiều sổ làm việc, mỗi sổ làm việc chứa một hoặc nhiều trang tính, bên trong mỗi trang tính bạn có thể truy cập các phạm vi. Mỗi phần tử có thể truy cập xuống một số lớp khác
Lớp ứng dụng Lớp này sẽ mở một phiên bản excel mới trên máy tính của tôi như bạn có thể thấy bên dưới
$objExcel = New-Object -ComObject Excel.Application
tài liệu tham khảo MSDN. Microsoft. Văn phòng. tương tác. Excel. lớp ứng dụng
Phiên bản Excel mới được tạo
Lớp sổ làm việc Trong bước thứ hai, chúng tôi đang mở sổ làm việc bên trong Trường hợp Excel
$WorkBook = $objExcel.Workbooks.Open("C:\VIDEOSERVER01-BuildSpecs.xlsx")
Chúng tôi có thể xác minh rằng sổ làm việc được mở bằng dòng sau
$objExcel.WorkBooks | Select-Object -Property name, path, author
Sau đó xem các thuộc tính và phương thức có thể được sử dụng
$objExcel.WorkBooks | Get-Member
Trong ví dụ sau, tôi giữ dữ liệu bên trong biến $WorkBook
$WorkBook = $objExcel.Workbooks.Open("C:\VIDEOSERVER01-BuildSpecs.xlsx")
Sau đó, tôi tìm kiếm bất kỳ thành viên nào (thuộc tính, phương thức hoặc sự kiện) có chứa từ “trang tính”
$WorkBook | Get-Member -Name *sheet*
WorkBook của tôi chứa 2 trang tính như bạn có thể thấy trong hình ảnh đầu tiên của bài viết, “BuildSpecs” và “Sheet2”, PowerShell có thể truy xuất thông tin này bằng cách sử dụng thuộc tính “sheet”
$WorkBook.sheets | Select-Object -Property Name
Lớp WorkSheet Chúng tôi chọn bảng BuildSpecs và bây giờ có thể bắt đầu làm việc với dữ liệu
$WorkSheet = $WorkBook.sheets.item("BuildSpecs")
Tải và lấy dữ liệu
Việc tải tệp trong PowerShell có thể được thực hiện chỉ với một vài dòng
________số 8
Hãy lấy giá trị ComputerName là $WorkBook = $objExcel.Workbooks.Open("C:\VIDEOSERVER01-BuildSpecs.xlsx") 2 là ví dụ này. Nếu bạn nhìn vào sheet “BuildSpecs” bên dưới, bạn sẽ thấy thông tin ComputerName trong ô C3. Chúng ta cũng có thể tham khảo nó bằng hệ tọa độ. Cột thứ ba/hàng thứ ba
Các phương pháp khác nhau có thể lấy thông tin từ trang tính, tôi đã tìm thấy những phương pháp sau
$WorkBook = $objExcel.Workbooks.Open("C:\VIDEOSERVER01-BuildSpecs.xlsx") 0
Cuối cùng, chúng ta có thể tạo một đối tượng PowerShell để xuất thông tin mà chúng ta muốn trích xuất từ tệp Excel