Chiều rộng cột của bảng Python-docx

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
6 thực hiện những gì bạn bảo nó thực hiện khi bạn đặt chiều rộng cột. Vấn đề là Word bỏ qua nó. Các ứng dụng khách khác, như LibreOffice, tôn trọng cài đặt độ rộng cột

Tệp

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
7 có định dạng XML [do đó có hậu tố 'x' trong phần mở rộng tệp]. Từ vựng XML dành cho bảng có một vị trí dành cho độ rộng của cột và một vị trí dành cho độ rộng của ô. Ai để ý đến chi tiết này thì hơi phật ý. Một mẫu số chung là mọi người đều tôn trọng độ rộng rõ ràng được đặt ở cấp ô riêng lẻ. Nó không có nhiều ý nghĩa đối với tôi, nhưng đây là những gì nó cần để làm cho nó hoạt động. Có thể có một chức năng trong chương trình của bạn đảm nhiệm các chi tiết

def set_col_widths[table]:
    widths = [Inches[1], Inches[2], Inches[1.5]]
    for row in table.rows:
        for idx, width in enumerate[widths]:
            row.cells[idx].width = width

Điều này sẽ phức tạp hơn một chút nếu bảng của bạn có các ô được hợp nhất, đây thực sự có thể là lý do Word bỏ qua độ rộng cột;

Python-docx cung cấp rất nhiều tính năng để tạo và chỉnh sửa tài liệu word. Trong hướng dẫn này, chúng tôi sẽ triển khai tính năng

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
8 và sử dụng các hàng và cột của bảng để thêm dữ liệu vào bảng. Đối với tài liệu API của các bảng trong python-docx, hãy kiểm tra tài liệu về url này

https. // trăn-docx. đọcthedocs. io/vi/mới nhất/api/bảng. html

Các bảng được tạo bằng phương pháp

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
0 trong tài liệu python-docx. Chúng tôi có thể cung cấp các tùy chọn sau trong khi tạo bảng

  • hàng. Số hàng của bảng
  • cols. Số cột của bảng
  • Phong cách. [mặc định
    # access first row's cells
    heading_row = table.rows[0].cells
    
    # add headings
    heading_row[0].text = "Name"
    heading_row[1].text = "Marks"
    1] Chỉ định kiểu, kiểu có thể là đối tượng kiểu đoạn hoặc tên kiểu đoạn

Để biết danh sách đầy đủ các kiểu bảng, hãy xem trên

Tạo bảng

Hãy tạo một bảng có 2 hàng và 2 cột bằng phương pháp

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
2. Kiểu bảng có thể được xác định bằng cách sử dụng đối số kiểu trong trường hợp này là Lưới bảng

from docx import Document
# create document
doc = Document[]

# add grid table
table = doc.add_table[rows=2, cols=2, style="Table Grid"]

Giờ đây, các hàng và cột của bảng có thể được truy cập bằng cách sử dụng thuộc tính

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
3 hoặc
# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
4 tương ứng và sau đó chúng ta có thể truy cập từng ô trong hàng đó bằng cách sử dụng
# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
5. Cho phép thêm tiêu đề vào hàng đầu tiên

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"

Theo cách tương tự, chúng tôi có thể thêm thông tin khác vào hàng

# access second row's cells
data_row = table.rows[1].cells

# add headings
data_row[0].text = "Ali"
data_row[1].text = "68"

Thêm hàng

Chúng ta cũng có thể thêm các hàng sau khi tạo bảng bằng phương thức add_row để thêm một hàng vào bảng và chúng ta có thể thêm dữ liệu vào hàng đó

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
0

Nó tạo một bảng có 3 hàng và 2 cột với thông tin

Lề ô

Chúng tôi có thể sử dụng OpenXML để sửa đổi và đặt bất kỳ kiểu nào bằng python-docx. Tại đây, chúng tôi có thể chỉ định lề cho bất kỳ ô nào mà chúng tôi có thể thêm hoặc xóa hoàn toàn lề ô

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
1

Từ Stackoverflow. https. // stackoverflow. com/a/55177526/6663675

Bây giờ chúng ta có thể thêm lề vào bất kỳ ô nào để tăng dung lượng

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
2

Bảng lồng nhau

Chúng tôi cũng có thể tạo các bảng lồng nhau nơi chúng tôi có thể thêm bảng vào một ô. Ví dụ 1 người muốn cộng điểm cho nhiều môn. Chúng ta có thể thêm một bảng vào các ô của bảng cha

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
3

Bây giờ chúng ta có thể lặp lại các giá trị và thêm vào bảng

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
4

Chúng tôi cũng có thể hiển thị hình ảnh bên trong bảng

Hình ảnh bảng

Trong đoạn bảng, chúng ta có thể thêm hình ảnh vào bảng. Đây là một ví dụ đơn giản để thêm hai hình ảnh vào bảng. Ở đây, chúng tôi lấy đoạn văn cho một ô mà chúng tôi muốn hiển thị hình ảnh và sau đó sử dụng phương thức add_picture để thêm hình ảnh từ đường dẫn. và chúng tôi cũng chỉ định chiều cao và chiều rộng tính bằng Inch

# access first row's cells
heading_row = table.rows[0].cells

# add headings
heading_row[0].text = "Name"
heading_row[1].text = "Marks"
5

Vì vậy, nó tạo một bảng có văn bản ở cột thứ nhất và hình ảnh ở cột thứ 2 cho mỗi hàng

Để biết thêm thông tin về cách làm việc với hình ảnh, hãy xem bài đăng tiếp theo của tôi hoặc xem tài liệu về python-docx

Chế độ xem có thể thêm dữ liệu từ tệp csv, tệp văn bản hoặc bất kỳ tệp nào khác vào bảng trong docx. Vì vậy, để biết thêm thông tin, hãy xem tài liệu python docx

Làm cách nào để đọc các bảng trong docx bằng Python?

Xử lý dữ liệu bảng thành pandas dataframe. Sử dụng các thuộc tính có sẵn của thư viện python-docx, đọc từng hàng của bảng và truy xuất văn bản từ từng ô và tạo danh sách python gồm danh sách chứa từng hàng. Then convert that python data structure to pandas DataFrame.

Tại sao tôi không thể thay đổi kích thước các cột trong bảng trong Word?

Cách điều chỉnh kích thước hàng và cột của bảng trong Word. Nhấp vào bất kỳ đâu trong bảng. Trong "Công cụ bảng", nhấp vào tab [Bố cục] > định vị nhóm "Kích thước ô" và chọn từ các tùy chọn sau. Để các cột vừa với văn bản [hoặc lề trang nếu ô trống], hãy nhấp vào [Tự động khớp] > chọn "Tự động khớp nội dung. "

Chủ Đề