Hướng dẫn python ms word automation - tự động hóa từ python ms

Tích hợp Excel với Word để tạo các báo cáo tự động một cách liền mạch

Ảnh của Isaac Smith trên unplash

Microsoft Excel và Word không có sự nghi ngờ, hai phần mềm được sử dụng dồi dào nhất trong thế giới công ty và không công ty. Họ thực tế đồng nghĩa với thuật ngữ ‘công việc chính nó. Thông thường, không một tuần trôi qua mà không có chúng tôi bắn lên sự kết hợp của hai và cách này hay cách khác để sử dụng lòng tốt của họ. Mặc dù đối với tự động hóa mục đích trung bình hàng ngày sẽ không được mời, có những lúc tự động hóa có thể là một điều cần thiết. Cụ thể, khi bạn có vô số biểu đồ, số liệu, bảng và báo cáo để tạo, nó có thể trở thành một công việc cực kỳ tẻ nhạt nếu bạn chọn tuyến đường thủ công. Chà, nó không phải là như vậy. Trên thực tế, có một cách để tạo ra một đường ống trong Python nơi bạn có thể tích hợp một cách liền mạch hai để tạo bảng tính trong Excel và sau đó chuyển kết quả sang Word để tạo báo cáo gần như ngay lập tức.

OpenPyxl

Gặp gỡ OpenPyXL, được cho là một trong những ràng buộc linh hoạt nhất trong Python khiến cho sự giao thoa với Excel hoàn toàn theo nghĩa đen đi dạo trong công viên. Được trang bị với nó, bạn có thể đọc và viết tất cả các định dạng Excel hiện tại và di sản, tức là XLSX và XLS. OpenPyXL cho phép bạn điền các hàng và cột, thực hiện các công thức, tạo biểu đồ 2D và 3D, trục và tiêu đề nhãn và rất nhiều khả năng khác có thể có ích. Tuy nhiên, quan trọng nhất, gói này cho phép bạn lặp lại một số lượng vô tận các hàng và cột trong Excel, do đó tiết kiệm cho bạn khỏi tất cả những thứ đáng tiếc và âm mưu mà bạn phải làm trước đây.

Python-docx

Và sau đó đi kèm với Python-docx, gói này là để biết OpenPyXL là gì để vượt trội. Nếu bạn đã nghiên cứu tài liệu của họ, thì có lẽ bạn nên xem xét. Python-DOCX không phóng đại, một trong những bộ công cụ đơn giản và tự giải thích nhất mà tôi đã làm việc với kể từ khi tôi bắt đầu làm việc với chính Python. Nó cho phép bạn tự động hóa việc tạo tài liệu bằng cách chèn văn bản, điền vào các bảng và hiển thị hình ảnh vào báo cáo của bạn tự động mà không có bất kỳ chi phí nào.

Không cần phải quảng cáo thêm, hãy để tạo ra đường ống tự động rất riêng của chúng tôi. Đi trước và kích hoạt Anaconda [hoặc bất kỳ IDE nào khác của bạn] và cài đặt các gói sau:

pip install openpyxlpip install python-docx

Tự động hóa Microsoft Excel

Ban đầu, chúng tôi sẽ tải một sổ làm việc Excel đã được tạo [hiển thị bên dưới]:

workbook = xl.load_workbook['Book1.xlsx']
sheet_1 = workbook['Sheet1']
Image của tác giả.

Sau đó, chúng tôi sẽ lặp lại trên tất cả các hàng trong bảng tính của chúng tôi để tính toán và chèn các giá trị cho nguồn bằng cách nhân dòng điện với điện áp:

for row in range[2, sheet_1.max_row + 1]:
current = sheet_1.cell[row, 2]
voltage = sheet_1.cell[row, 3]
power = float[current.value] * float[voltage.value]
power_cell = sheet_1.cell[row, 1]
power_cell.value = power

Sau khi hoàn thành, chúng tôi sẽ sử dụng các giá trị được tính toán cho nguồn để tạo biểu đồ dòng sẽ được chèn vào ô được chỉ định như hình dưới đây:

Bảng tính excel được tạo ra. Hình ảnh của tác giả.

Trích xuất biểu đồ

Bây giờ chúng tôi đã tạo biểu đồ của mình, chúng tôi cần trích xuất nó như một hình ảnh để chúng tôi có thể sử dụng nó trong báo cáo từ của chúng tôi. Đầu tiên, chúng tôi sẽ khai báo vị trí chính xác của tệp Excel của chúng tôi và cũng là nơi cần lưu hình ảnh biểu đồ đầu ra:

input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"

Sau đó truy cập bảng tính bằng phương pháp sau:

operation = win32com.client.Dispatch["Excel.Application"]
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open[input_file]
sheet_2 = operation.Sheets[1]

Sau đó, bạn có thể lặp lại tất cả các đối tượng biểu đồ trong bảng tính [nếu có nhiều hơn một] và lưu chúng ở vị trí được chỉ định như vậy:

for x, chart in enumerate[sheet_2.Shapes]:
chart.Copy[]
image = ImageGrab.grabclipboard[]
image.save[output_image, 'png']
pass
workbook_2.Close[True]
operation.Quit[]

Tự động hóa Microsoft Word

Bây giờ chúng tôi có hình ảnh biểu đồ của chúng tôi được tạo, chúng tôi phải tạo một tài liệu mẫu về cơ bản là một tài liệu Microsoft Word bình thường [.docx] được xây dựng chính xác theo cách chúng tôi muốn báo cáo của chúng tôi xem xét, bao gồm các kiểu chữ, kích thước phông chữ, định dạng và cấu trúc trang . Sau đó, tất cả những gì chúng ta cần làm là tạo trình giữ chỗ cho nội dung tự động của chúng tôi, tức là các giá trị và hình ảnh bảng và khai báo chúng với các tên biến như dưới đây.

Mẫu tài liệu Microsoft Word. Hình ảnh của tác giả.

Bất kỳ nội dung tự động nào cũng có thể được khai báo bên trong một cặp dấu ngoặc đôi {{varable_name}}, bao gồm văn bản và hình ảnh. Đối với các bảng, bạn cần tạo một bảng với một hàng mẫu với tất cả các cột bao gồm, và sau đó bạn cần nối một hàng ở trên và một hàng bên dưới với ký hiệu sau:

Hàng đầu tiên:

{%tr for item in variable_name %}

Hàng cuối cùng:

{%tr endfor %}

Trong hình trên các tên biến là

  • Table_Contents cho từ điển Python sẽ lưu trữ dữ liệu bảng của chúng tôi
  • Chỉ mục cho các phím từ điển [cột đầu tiên]
  • Công suất, dòng điện và điện áp cho các giá trị từ điển [cột thứ hai, thứ ba và thứ tư]

Sau đó, chúng tôi nhập tài liệu mẫu của chúng tôi vào Python và tạo một từ điển sẽ lưu trữ các giá trị bảng của chúng tôi:

template = DocxTemplate['template.docx']
table_contents = []
for i in range[2, sheet_1.max_row + 1]:
table_contents.append[{
'Index': i-1,
'Power': sheet_1.cell[i, 1].value,
'Current': sheet_1.cell[i, 2].value,
'Voltage': sheet_1.cell[i, 3].value
}]

Tiếp theo, chúng tôi sẽ nhập hình ảnh biểu đồ được tạo ra trước đây bởi Excel và sẽ tạo một từ điển khác để khởi tạo tất cả các biến số giữ chỗ được khai báo trong tài liệu mẫu:

workbook = xl.load_workbook['Book1.xlsx']
sheet_1 = workbook['Sheet1']
0

Và cuối cùng, chúng tôi sẽ hiển thị báo cáo với bảng giá trị và hình ảnh biểu đồ của chúng tôi:

workbook = xl.load_workbook['Book1.xlsx']
sheet_1 = workbook['Sheet1']
1

Kết quả

Và bạn đi, một báo cáo Microsoft Word được tạo tự động với các số và biểu đồ được tạo trong Microsoft Excel.Và với điều đó, bạn có một đường ống hoàn toàn tự động có thể được sử dụng để tạo ra nhiều bảng, biểu đồ và tài liệu mà bạn có thể cần.

Tự động tạo báo cáo.Hình ảnh của tác giả.

Mã nguồn

Nếu bạn muốn tìm hiểu thêm về trực quan hóa dữ liệu và Python, thì hãy xem các khóa học sau [liên kết liên kết] sau: liên kết]:

Phát triển ứng dụng web với Streamlit:

Trực quan hóa dữ liệu với Python:

Python cho mọi người chuyên môn hóa:

Kho lưu trữ GitHub:

☕ Thích hướng dẫn này?Hãy tặng một ly cà phê cho tôi ở đây.

Mới đến trung bình?Bạn có thể đăng ký và mở khóa các bài viết không giới hạn ở đây.

Bài Viết Liên Quan

Chủ Đề