PowerShell excel ghi vào ô

Xin chào OldDog,


Hãy thử với "`r", nó là PowerShell tương đương với LF


$objBảng tính. Phạm vi ("A1"). AddComment("Chó Cũ. `đây là một nhận xét")


---
Shay Levy
Windows PowerShell MVP
http. // blog. Microsoft. đồng. il/blog/ScriptFanatic

O> Ngày 24/08/7. 11 giờ sáng. @gmail. com đã viết
Ô>
>> Được rồi, tôi đã thực hiện một số chương trình trong quá khứ và bây giờ tôi đang sử dụng
>> vỏ bọc quyền lực
>> Đó là một ngôn ngữ Scripting tuyệt vời và tôi đang nghiên cứu một số thứ. Nhưng mà
>> nơi tôi đang ở hiện tại là tôi có rất nhiều lĩnh vực/thông tin tôi muốn
>> đến
>> leo lên một bàn. Tôi muốn sử dụng trường nhận xét trong excel
>> Do đó, ai đó sẽ di chuột qua một ô thông tin và nó sẽ
>> cho
>> họ biết thêm thông tin trong trường nhận xét mà không có toàn bộ khác
>> cột cho nó (vì nó sẽ trở nên khá xấu xí nhanh chóng)

Ô> Chào,
Ô>
O> Vâng, điều này sẽ thêm một bình luận. Nhưng nó cần một nguồn cấp dữ liệu sau
O> commnents tác giả
O> Đó là ascii Char10 trong VBA, không biết cách thực hiện điều đó trong PowerShell
O> $objExcel = Đối tượng mới -com Excel. Ứng dụng
O> $objExcel. hiển thị = $True
O> $objWorkbook = $objExcel. sách bài tập. Thêm vào()
O> $objWorksheet = $objWorkbook. bảng tính. Mục 1)
O> $objWorksheet. tế bào. Item(1,1) = “Một giá trị trong ô A1. ”
O> $objWorksheet. Phạm vi ("A1"). Thêm bình luận()
O> $objWorksheet. Phạm vi ("A1"). nhận xét. Hiển thị = $False
O> $objWorksheet. Phạm vi ("A1"). nhận xét. Văn bản = ("OldDog. " "Char10" "cái này
O> là
O> một nhận xét") <---- cần một LF ở đây
O> $objWorksheet. Phạm vi ("A2"). Lựa chọn

Bài viết trên blog này chỉ cho bạn cách ghi dữ liệu vào Excel bằng PowerShell. Dưới đây là đoạn mã và giải thích trong phần nhận xét về cách hoạt động của mã

# Khai báo đối tượng Excel (bạn cần cài đặt Excel)

$ExcelObj = Đối tượng mới -comobject Excel. Ứng dụng

# Hiển thị ứng dụng Excel trên màn hình của bạn

$ExcelObj. hiển thị=$true

# Mở tệp Excel

$ExcelWorkBook = $ExcelObj. sách bài tập. mở(“C. \PS\corp_ad_users. xlsx”)

# Để xác thực trang tính

$ExcelWorkBook. trang tính. fl Tên, chỉ số

# CORP_users là một Trang tính trong sổ làm việc

$ExcelWorkSheet = $ExcelWorkBook. trang tính. Mục(“CORP_users”)

# Để xác thực trang tính

$ExcelWorkBook. Bảng hoạt động. fl Tên, Chỉ mục

# Dưới đây là tất cả các phương pháp bạn có thể sử dụng để đọc ô B4

$ExcelWorkSheet. Phạm vi (“B4”). Chữ

$ExcelWorkSheet. Phạm vi ("B4. B 4"). Chữ

$ExcelWorkSheet. Phạm vi(“B4″,”B4”). Chữ

$ExcelWorkSheet. tế bào. Mục(4, 2). chữ

$ExcelWorkSheet. tế bào. Mục(4, 2). giá trị2

$ExcelWorkSheet. Cột. Mục(2). hàng. Mục(4). Chữ

$ExcelWorkSheet. hàng. Mục(4). Cột. Mục(2). Chữ

# Dưới đây là cách bạn có thể ghi dữ liệu trong Excel

$ExcelWorkSheet. Phạm vi("A6") = 'Người dùng'

$ExcelWorkSheet. Phạm vi("B6") = 'Người dùng'

$ExcelWorkSheet. Phạm vi("C6") = 'Người dùng cuối'

# Lưu sau khi viết

$ExcelWorkBook. Tiết kiệm()

# Đóng tệp Excel

$ExcelWorkBook. đóng($true)

$ExcelObj. Từ bỏ()

# Vứt bỏ đối tượng Excel

[Hệ thống. thời gian chạy. dịch vụ tương tác. nguyên soái]. ReleaseComObject($ExcelObj)

Loại bỏ biến ExcelObj

Bạn sẽ thấy tệp Excel giống như tệp bên dưới sau khi bạn đang chạy tập lệnh PowerShell

PowerShell excel ghi vào ô

Tải xuống mã nguồn. https. //github. com/chanmmn/powershell/blob/main/WriteExcel. ps1/?WT. mc_id=DP-MVP-36769

Thẩm quyền giải quyết. http. //woshub. com/read-write-excel-files-powershell/?WT. mc_id=DP-MVP-36769

Chia sẻ cái này

  • Twitter
  • Facebook

Như thế này

Thích Đang tải.

Có liên quan

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 những người bình thường như chúng ta. 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 vài trường hợp sử dụng phổ biến

đ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

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

Import-Excel -Path './processes.xlsx'
0 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'

PowerShell excel ghi vào ô
Bảng 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

Import-Excel -Path './processes.xlsx'
4 để tự động hóa kích thước tất cả các hàng,
Import-Excel -Path './processes.xlsx'
5 để chỉ định tên của bảng sẽ bao gồm tất cả dữ liệu và tên tham số
Import-Excel -Path './processes.xlsx'
6 của Quy trình, bạn có thể thấy 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 excel ghi vào ô
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
Import-Excel -Path './processes.xlsx'
9

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 tùy ý sử dụng

Ở 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ố

Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
1 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

Import-Excel -Path './processes.xlsx'

PowerShell excel ghi vào ô
Tham số đường dẫn

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

Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet

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

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'

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. Để có danh sách đầ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
Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
6

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

Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
9, 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ớ

$excel = Open-ExcelPackage -Path './processes.xlsx'

Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
9 tương tự như sử dụng
Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
1 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

$worksheet = $excel.Workbook.Worksheets['Processes']

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

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
2

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 tài sản

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
3 cung cấp chỉ số A1 như hình bên dưới

$worksheet.Cells['A1'].Value

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ụ:.

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
4

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

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
5

Close-ExcelPackage $excel

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 thông 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

Import-Excel './processes.xlsx' | Export-Csv -Path './processes.csv' -NoTypeInformation

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

Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
7. Khi bạn có tên trang tính, bạn có thể chuyển các tên đó cho tham số
Import-Excel -Path './processes.xlsx'
6 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 excel ghi vào ô

    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 excel ghi vào ô

    Đượ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 excel ghi vào ô

    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ể 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ứ.

    Làm cách nào để chuyển đổi CSV sang Excel trong PowerShell?

    Cách chuyển đổi tệp CSV thành tài liệu Excel bằng XlsIO trong. .
    #Nhận thư mục hiện tại. .
    #Xác định tệp CSV đầu vào. .
    #Xác định tệp XLSX đầu ra. .
    #Khởi tạo đối tượng động cơ Excel. .
    #Khởi tạo đối tượng ứng dụng Excel. .
    #Xác định dấu tách. .
    #Giữ nguyên loại dữ liệu từ tệp CSV. .
    #Mở tệp CSV bằng XlsIO

    Xuất trong Excel ở đâu?

    Nhấp vào Tệp > Xuất > Microsoft Office > Excel . Cửa sổ Xuất Excel mở ra. Chọn các tùy chọn mà bạn muốn áp dụng để xuất. Để biết thêm thông tin về các tùy chọn xuất, hãy nhấp vào Trợ giúp trong cửa sổ Xuất Excel này.