関連パッケージ
python-docxファイル
輸入DOCX
Word文書
Pythonは、Word文書の内容を読んで
doc.paragraphsは、各段落のインスタンスを含むリストを取得します
from docx import Document doc = Document("lian.docx") print(doc.paragraphs)
paragraph.textは、段落テキストを与えます
from docx import Document doc = Document("lian.docx") for paragraph in doc.paragraphs: print(paragraph.text)
テキストのテキストのブロックを得るrun.text
from docx import Document doc = Document("lian.docx") paragraph = doc.paragraphs[0] runs = paragraph.runs for run in runs: print(run.text)
Word文書へのpythonの書き込み
テキストを追加します
タイトルを追加
doc.add_heading(「タイトル名」、レベル=レベル・ヘッダー)
from docx import Document doc = Document("lian.docx") doc.add_heading("一级标题",level=1)
段落を追加します。
doc.add_paragraph( "段落テキスト")
paragraph1 = doc.add_paragraph("这是一个段落") doc.add_paragraph("这又是一个段落")
テキストブロックを追加します。
paragraph.add_run( "テキスト")
paragraph3 = doc.add_paragraph() paragraph3.add_run("加粗").bold = True paragraph3.add_run("普通") paragraph3.add_run("斜体").italic = True
ページを追加します。
doc.add_page_break()
doc.add_page_break()
画像や表を追加
画像を追加
doc.add_picture( "ピクチャーアドレス")
doc.add_picture("my.png")
画像を追加、与えられた幅または高さ
dic.add_picture( "ピクチャーアドレス"、幅=幅、高さ=高さ)
from docx.shared import Cm doc.add_picture("my.png", width = Cm(5)) #设定宽度为5cm doc.add_picture("my.png", heigtht = Cm(5)) #设定高度为5cm
CMは、CMです
幅または高さの場合のみ、他の寸法を自動的に計算されます
テーブルを追加します
doc.add_table(行=行数、COLS =列数)
records = [ ["学号","姓名","成绩"], [101,"李雷",95], [102,"韩梅梅",100], [103,"马冬梅",98] ] table = doc.add_table(rows = 4, cols = 3) for row in range(4): cells = table.rows[row].cells for col in range(3): cells[col].text = str(records[row][col])
まとめると
from docx import Document from docx.shared import Cm doc = Document() doc.add_heading("一级标题",level=1) paragraph1 = doc.add_paragraph("这是一个段落") paragraph2 = doc.add_paragraph("这又是一个段落") paragraph3 = doc.add_paragraph() paragraph3.add_run("加粗").bold = True paragraph3.add_run("普通") paragraph3.add_run("斜体").italic = True doc.add_page_break() doc.add_picture("my.png") doc.add_picture("my.png", width = Cm(5)) doc.add_picture("my.png", height = Cm(5)) records = [ ["学号","姓名","成绩"], [101,"李雷",95], [102,"韩梅梅",100], [103,"马冬梅",98] ] table = doc.add_table(rows = 4, cols = 3) for row in range(4): cells = table.rows[row].cells for col in range(3): cells[col].text = str(records[row][col]) doc.save("shi.docx") #最后一定不要忘了保存
Pythonは、Word文書のスタイルを調整します
テキストのフォントスタイルを変更するには
run.font。スタイル= XXX
フォントを設定するとき、それはフォントの英語名である場合は、直接その上で、「=」run.font.nameことに注意してください
それは、フォントの中国名である場合には、この仕事に
R = run._element.rPr.rFonts
r.set(QN( "W:eastAsia")、 "微软雅黑")from docx import Document from docx.shared import Pt,RGBColor from docx.oxml.ns import qn doc = Document("lian.docx") for paragraph in doc.paragraphs: for run in paragraph.runs: run.font.bold = True #加粗 run.font.italic = True #斜体 run.font.underline = True #下划线 run.font.strike = True #删除线 run.font.shadow = True #阴影 run.font.size = Pt(20) #20号字体的大小 run.font.color.rgb = RGBColor(255,255,0) #run.font.name = "微软雅黑" r = run._element.rPr.rFonts r.set(qn("w:eastAsia"), "微软雅黑") doc.save("shi.docx")
修正段落スタイル
合わせたスタイル
アライメントparagraph.alignment =
行間隔
paragraph.paragraph_format.line_spacing = 2.0
浮動小数点数、それはその2.0倍の行間を意味しています
前部セクションおよび後部セクション間隔
paragraph.paragraph_format.space_before = Pt(12) paragraph.paragraph_format.space_after = Pt(12)
(12)Ptが12ポンドを表現しました
まとめると
from docx.enum.text import WD_ALIGN_PARAGRAPH from docx import Document from docx.shared import Pt,RGBColor from docx.oxml.ns import qn doc = Document() paragraph = doc.add_paragraph() paragraph. alignment = WD_ALIGN_PARAGRAPH.CENTER paragraph.paragraph_format.line_spacing = 2.0 paragraph.paragraph_format.space_before = Pt(12) paragraph.paragraph_format.space_after = Pt(12) doc.save("shi.docx")