I'm trying to create a word document using docx module of Python. However I am unable to add table border to it.
My code is as below:
import docx
from docx import Document
from docx.shared import Pt
doc = Document['C:/Users/Vinny/Desktop/Python/Template.docx']
doc.add_paragraph['Changes:']
doc.add_paragraph['Metrics:']
#add table
table = doc.add_table[rows = 4, cols = 2, style='TableGrid']
doc.save['C:/Users/Vinny/Desktop/Python/rel.docx']
But it throws error as:
Traceback [most recent call last]:
File "C:\Users\Vinny\Desktop\Python\abc.py", line 14, in
table = doc.add_table[rows = 4, cols = 2, style='TableGrid']
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\document.py", line 100, in add_table
table.style = style
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\table.py", line 134, in style
style_or_name, WD_STYLE_TYPE.TABLE
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\parts\document.py", line 76, in get_style_id
return self.styles.get_style_id[style_or_name, style_type]
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\styles\styles.py", line 113, in get_style_id
return self._get_style_id_from_name[style_or_name, style_type]
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\styles\styles.py", line 143, in _get_style_id_from_name
return self._get_style_id_from_style[self[style_name], style_type]
File "C:\Users\Vinny\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\styles\styles.py", line 57, in __getitem__
raise KeyError["no style with name '%s'" % key]
KeyError: "no style with name 'TableGrid'"
Can anyone help me out with this?
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/154/9/15
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/154/10/15Oct 2, 2015 at 19:36
2
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/15
#Open the document
document = Document[args.inputFile]
#changing the page margins
sections = document.sections
for section in sections:
section.top_margin = Cm[margin]
section.bottom_margin = Cm[margin]
section.left_margin = Cm[margin]
section.right_margin = Cm[margin]
document.save[args.outputFile]
Nhân tiện, tôi gặp lỗi khi thêm kiểu vào bảng. Điều này có được mong đợi không?Oct 2, 2015 at 21:55
Steve CannyXAnguera
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/10/151 gold badge11 silver badges23 bronze badges
4
import docx
from docx.shared import Inches, Cm
doc = docx.Document[]
sections = doc.sections
for section in sections:
section.top_margin = Cm[0.5]
section.bottom_margin = Cm[0.5]
section.left_margin = Cm[1]
section.right_margin = Cm[1]
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/154/22/15from docx.shared import Inches, Cm
Tôi cần nhanh chóng thay đổi lề của nhiều tài liệu DOCX. Tôi đã kiểm tra Python-docx và tôi không tìm thấy cách truy cập/sửa đổi bố cục trang [đặc biệt là các bên lề]. Là có một cách?Jun 17, 2020 at 13:50
Simon Björk
unread,
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/9/154/9/15
đến
Hello,
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
Mã ví dụ:
from docx import Document
from docx.shared import Cm
document
= Document[]document
.add_paragraph[].add_run["temp text"]table
= document.add_table[rows=4, cols=4]
table.style = 'TableGrid'
table.rows[0].cells[0].paragraphs[0].add_run["more text"]section
= document.sections[0]
section.left_margin = Cm[1.25]
section.top_margin = Cm[1.0]document
.save["tmp.docx"]
Simon Björk
unread,
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/9/154/9/15
đến
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
/usr/local/lib/python2.7/site-packages/docx/styles/styles.py:54: UserWarning: style lookup by style_id is deprecated. Use style name as key instead.
warn[msg, UserWarning]
Mã ví dụ:
unread,
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/154/9/154/9/15
đến
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
--Steve
Simon Björk
unread,
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/9/154/9/15
đến
table = document.add_table[rows=4, cols=4]
table.style = 'TableGrid'
Mã ví dụ:
unread,
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?4/10/15
đến
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
Mã ví dụ:
Simon Björk
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/9/15
Ngày 9 tháng 4 năm 2015, 4:55:31 AM4/9/154/10/15
--Steve
Simon Björk
unread,
Ngày 9 tháng 4 năm 2015, 4:50:22 AM4/9/154/9/154/10/15
đến
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
Mã ví dụ:
Mã ví dụ:
unread,
Simon Björk4/22/15
đến
Tôi có một tài liệu đơn giản trong đó tôi thêm một chút văn bản ở đầu trang và sau đó thêm một bảng. Tất cả điều này hoạt động tuyệt vời, ngoại trừ sự liên kết với lề trang. Tôi muốn văn bản ở trên cùng được căn chỉnh theo chiều dọc với đường viền của bảng. Như bây giờ, văn bản ở trên cùng được căn chỉnh với văn bản trong bảng, nhưng người nội trú thực tế của bảng nằm xa hơn một chút về bên trái. Điều này có thể?
Mã ví dụ:
--Steve