パイソンWordのモジュール

関連パッケージ

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")

 

 

 

 

 

 

 

 

 

 

 

公開された396元の記事 ウォンの賞賛172 ビュー170 000 +

おすすめ

転載: blog.csdn.net/hxxjxw/article/details/104704347