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"] $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
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
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ảngNế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 để điSử 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ìnhCó 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ệnVí 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
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àyGet-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
Để 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ướiGet-Process | Export-Excel -Path './processes.xlsx'
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ự độngBằ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ạoGet-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
Lệnh ghép ngắn
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ạyGet-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
9Import-Excel -Path './processes.xlsx'
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 PowerShellImport-Excel -Path './processes.xlsx'
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
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ạyGet-Process | Export-Excel -Path './processes.xlsx' -AutoSize -TableName Processes -WorksheetName Proccesses
6Import-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
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'
9 tương tự như sử dụngImport-Excel -Path './processes.xlsx' -WorkSheetname SecondWorksheet
1 nếu làm việc trực tiếp với các đối tượng COMImport-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
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
2Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
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ụ:.
4Import-Excel -Path './processes.xlsx' -WorkSheetname Processes -HeaderName 'CPU','Handle'
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'
5Close-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
3Có 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 CSVDướ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
0Phầ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 ATAThông tin khác từ ATA Learning & Partners
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.
Đượ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?
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 XlsIOXuấ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.