def first():
from docx import Document
doc1 = Document()
doc1.add_heading('如何使用 Python 创建和操作 Word', 0)
doc1.save('./办公自动化/files/word.docx')
def start1():
from docx import Document
doc1 = Document()
doc1.add_heading('如何使用 Python 创建和操作 Word', 0)
doc1.add_heading('Python 操作 Word 1级标题', level=1)
doc1.add_heading('Python 操作 Word 2级标题', level=2)
doc1.add_heading('Python 操作 Word 3级标题', level=3)
doc1.add_paragraph('这个是段落内容', )
doc1.add_paragraph('这个是段落内容', 'Title')
doc1.add_paragraph(
' Python是一门计算机程序编程语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。是一种解释型脚本语言。它是由荷兰人吉多·范罗苏姆所发明的。')
paragraph = doc1.add_paragraph(
' Python是一门计算机程序编程语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。是一种解释型脚本语言。它是由荷兰人吉多·范罗苏姆所发明的。')
paragraph.add_run('在段落后面增加内容!')
doc1.add_paragraph('哪个不是动物:')
doc1.add_paragraph('喜羊羊', style='List Bullet')
doc1.add_paragraph('懒羊羊', style='List Bullet')
doc1.add_paragraph('沸羊羊', style='List Bullet')
doc1.add_paragraph('美羊羊', style='List Bullet')
doc1.add_paragraph('灰太狼', style='List Bullet')
doc1.add_paragraph('今年的学习计划:')
doc1.add_paragraph('Python', style='List Number')
doc1.add_paragraph('HTML', style='List Number')
doc1.add_paragraph('JS', style='List Number')
doc1.add_paragraph('CSS', style='List Number')
doc1.add_paragraph('这个是引用', style='Intense Quote')
from docx.shared import Inches
pic = doc1.add_picture('D:\\git-python\\前端\\static\\img\\haha.png')
height = pic.height
width = pic.width
page_width = doc1.sections[0].page_width
page_left = doc1.sections[0].left_margin
doc_width = page_width - (page_left * 2)
print(page_width, page_left, doc_width)
sc = height/width
pic.width = doc_width
pic.height = int(doc_width * sc)
table = doc1.add_table(rows=1, cols=3)
cells = table.rows[0].cells
cells[0].text = '编号'
cells[1].text = '姓名'
cells[2].text = '职业'
data = [
[1, '吕小布', '将军'],
[2, '诸葛亮', '军师'],
[3, '刘备', '主公']
]
for i, n, w in data:
cells = table.add_row().cells
cells[0].text = str(i)
cells[1].text = n
cells[2].text = w
doc1.save('./办公自动化/files/word.docx')
def use_style():
from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
doc1 = Document()
h1 = doc1.add_heading('', 0)
h1.alignment = WD_ALIGN_PARAGRAPH.CENTER
h = h1.add_run('如何使用 Python 创建和操作 Word')
h.font.size = Pt(28)
p1 = doc1.add_paragraph('')
p = p1.add_run('这是段落1:\n')
p.font.size = Pt(28)
p.bold = True
p.font.shadow = True
p.font.color.rgb = RGBColor(205, 51, 51)
p1.add_run('这是内容1.1 # 粗体\n').bold = True
p1.add_run('这是内容1.2 # 斜体\n').italic = True
p1.add_run('这是内容1.3 # 字体大小\n').font.size = Pt(26)
p1.add_run('这是内容1.4 # 中划线\n').font.strike = True
p1.add_run('这是内容1.5 # 下划线\n').font.underline = True
p1.add_run('这是内容1.6 # 阴影\n').font.shadow = True
p1.add_run('这是内容1.7 # 颜色\n').font.color.rgb = RGBColor(238, 118, 33)
p1.add_run('Test font style 1.8 \n').font.name = '微软雅黑'
run = p1.add_run('测试字体 1.9 \n')
run.font.name = ''
run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
p2 = doc1.add_paragraph('')
p2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
p = p2.add_run('这是段落2\n')
p.font.size = Pt(28)
p.bold = True
p.font.shadow = True
p.font.color.rgb = RGBColor(139, 28, 98)
p3 = doc1.add_paragraph()
p3.add_run('Python是一门计算机程序编程语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。是一种解释型脚本语言。它是由荷兰人吉多·范罗苏姆所发明的。')
p3.paragraph_format.left_indent = Inches(0.5)
p4 = doc1.add_paragraph('')
run = p4.add_run(
'Python是一门计算机程序编程语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。是一种解释型脚本语言。它是由荷兰人吉多·范罗苏姆所发明的。')
p4.paragraph_format.first_line_indent = Inches(0.25)
last_paragraph = doc1.paragraphs[-1]
p4.paragraph_format.space_after = Pt(24)
p4.paragraph_format.space_before = Pt(24)
p4.paragraph_format.line_spacing = 1.5
doc1.save('./办公自动化/files/word.docx')
def default_style():
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
doc = Document()
doc.styles['Normal'].font.name = '宋体'
doc.styles['Normal'].font.size = Pt(25)
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
doc.add_paragraph('这是一段中文内容')
doc.add_paragraph('This is an English paragraph')
for paragraph in doc.paragraphs:
paragraph.style = doc.styles['Normal']
for run in paragraph.runs:
run.font.size = Pt(10)
doc.save('./办公自动化/files/word.docx')
def test():
from docx import Document
from docx.shared import Cm, Inches, Pt, RGBColor
document = Document('./办公自动化/files/word.docx')
section = document.sections[0]
print('上页边距:下页边距:左页边距:右页边距:', section.top_margin, section.bottom_margin,
section.left_margin, section.right_margin)
section.top_margin = Cm(1.27)
section.bottom_margin = Cm(1.27)
section.left_margin = Cm(1.27)
section.right_margin = Cm(1.27)
print('上页边距:下页边距:左页边距:右页边距:', section.top_margin, section.bottom_margin,
section.left_margin, section.right_margin)
document.sections[0].page_height = Cm(29.7)
document.sections[0].page_width = Cm(21)
from docx.oxml.ns import qn
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
document.styles['Normal'].font.size = Pt(10.5)
document.styles['Normal'].font.color.rgb = RGBColor(0, 80, 0)
Head = document.add_heading("", level=1)
run = Head.add_run("真正要填写的标题")
run.font.name = u'Cambria'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')
run.font.color.rgb = RGBColor(0, 0, 0)
import docx
Head.alignment = docx.enum.text.WD_ALIGN_PARAGRAPH.CENTER
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
page = document.add_paragraph('这是一个段落')
run = page.add_run('这是一个段落')
run.font.name = '微软雅黑'
run.font.size = Pt(50)
run.font.color.rgb = RGBColor(0, 0, 0)
document.styles['Normal'].paragraph_format.widow_control = False
from docx.enum.dml import MSO_THEME_COLOR_INDEX, MSO_COLOR_TYPE
run.font.color.theme_color = MSO_THEME_COLOR_INDEX.ACCENT_1
run.font.highlight_color = MSO_THEME_COLOR_INDEX.DARK_1
document.save('./办公自动化/files/word.docx')
"""
# 字号'八号'对应磅值5
# 字号'七号'对应磅值5.5
# 字号'小六'对应磅值6.5
# 字号'六号'对应磅值7.5
# 字号'小五'对应磅值9
# 字号'五号'对应磅值10.5
# 字号'小四'对应磅值12
# 字号'四号'对应磅值14
# 字号'小三'对应磅值15
# 字号'三号'对应磅值16
# 字号'小二'对应磅值18
# 字号'二号'对应磅值22
# 字号'小一'对应磅值24
# 字号'一号'对应磅值26
# 字号'小初'对应磅值36
# 字号'初号'对应磅值42
"""
def get_docx(file):
from docx import Document
document = Document(file)
for i in document.paragraphs:
print(i.text)
for t in document.tables:
for rows in t.rows:
for cell in rows.cells:
print(cell.text)
if __name__ == '__main__':
get_docx('./办公自动化/files/违章通知书.docx')