Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice

加入好友
加入社群
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

from docx import Document
doc = Document()
tabs = [
[“姓名”, “學號”, “成績”],
[“儲蓄保險王”, 101, 99],
[“正義真話俠”, 102, 98],
[“SavingKing”, 103, 95],
[“@wvr5039s”, 104, 90]
]

table = doc.add_table(rows=5, cols=3)

# ========================================================================
# for r in range(5):
# cells = table.rows[r].cells
# for c in range(3):
# cells[c].text = str(tabs[r][c])
# ========================================================================
for r in range(5):
for c in range(3):
table.cell(r,c).text = str(tabs[r][c])
doc.save(“savingking.docx”)

#原程式無誤,少最後一個row

#是因為使用wordPad開啟的關係

#用微軟的Word或免費的LibreOffice開,

#就不會少最後一個row

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

輸出檔案:

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

少了最後一個row

改用LibreOffice開啟即正常:

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

 

新增一行:

table.add_row() 

#少最後一個row

#是wordPad的關係,程式碼無關

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

輸出:

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

最後一個row有跑出來

只是多了四個空白row

 

多這一行:

table.add_row()

且不屬於for迴圈之下

表格即正常:

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

 

from docx import Document
from docx.shared import Cm #或 Inches
doc = Document()
doc.add_heading(“SavingKing’s Title”,0) #數字越大,字越小

p = doc.add_paragraph(“A plain paragraph having some “)

p.add_run(“bold”).bold = True
p.add_run(” and some “) #字串前後都有一個空格
p.add_run(“italic”).italic = True

# Run物件:以相同樣式連續鄰接的文字。

#當文字的樣式有變化時,就需要一個新的Run物件。

doc.add_picture(\
r”C:\Python\RF Stable\Fig\Phase Stable.png”,width = Cm(10) )

doc.save(“savingking_2.docx”)

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

繼前面已經成功插入表格

如何在表格中插入圖檔?

from docx import Document
from docx.shared import Cm #Inch #Pt
doc = Document()
tabs = [
    [“姓名”, “學號”, “成績”],
    [“儲蓄保險王”, 101, 99],
    [“正義真話俠”, 102, 98],
    [“SavingKing”, 103, 95],
    [“@wvr5039s”, 104, 90]
]

table = doc.add_table(rows=5, cols=3)

for r in range(0, 5):
    #    table.add_row()
    for c in range(0, 3):
        #print(“(%d,%d)” %(r,c),end=” “)
        table.cell(r, c).text = str(tabs[r][c])
table.add_row()
figpath = r”C:\22056 EPP IL\Fig\Air vs DUT.png”
run = table.cell(5,0).paragraphs[0].add_run()
#.add_run(“想要寫的文字”)
pic = run.add_picture(figpath)
pic.height = Cm(4)
pic.width = Cm(3)
doc.save(r”C:\Python\DocxCsv\SavingKing.docx”)
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王
 
SavingKing.docx
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王
調整欄寬:
from docx import Document
from docx.shared import Cm #Inch #Pt
doc = Document()

table = doc.add_table(rows=3, cols=2)
col0 = table.columns[0]
col1 = table.columns[1]
col0.width = Cm(2)
col1.width = Cm(13)
run0 = table.cell(0,0).paragraphs[0].add_run(“item 1”)
figpath = r”C:\22056 EPP IL\Fig\Air vs DUT.png”
run = table.cell(0,1).paragraphs[0].add_run(“item 1:\n”)
pic = run.add_picture(figpath)
pic.height = Cm(12)
pic.width = Cm(12)
doc.save(r”C:\Python\DocxCsv\SavingKing.docx”)

Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

SavingKing.docx:
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王
統整:
物件 方法 備註
doc = Document() .add_heading(“Title”,0) 數字越大,字越小
  .add_paragraph(“A plain paragraph.”) 加入段落
  .add_picture( ”path” ,width = Cm( 10)) 加入圖片
  .save(”path”) 存檔
pg = doc.add_paragraph() pg.add_run(”bold text”) = True 粗體字
  pg.add_run(”plain text”)  
  pg.add_run( ”italic text” ) = True 斜體字
table=doc.add_table(rows=5,cols=3) table.cell(r,c).text = str  
  table.add_row()  
以上已可插入表格,段落(粗斜體),圖片 如何在儲存格中插入圖片?  
run = table.cell(5,0).paragraph[0].add_run()    
pic = run.add_picture(”path”) .height = Cm(8)  
  .width = Cm(12)  
 
doc = Document()

def addPicsInTable(pathList, title, doc):
    “””pathList長度6,就表示有6張圖,
    建立一個7列的table(首列放標題title)
    “””
    pg = doc.add_paragraph()
    pg.add_run(title).bold = True
    table = doc.add_table(rows= len(pathList)+1, cols=1)
    col0 = table.columns[0]
    col0.width = Cm(13)
    table.cell(0,0).paragraphs[0].add_run(title).bold = True
    for r in range(0, len(pathList) ):
        path = pathList[r]
        #if (r+1)%2 ==0 : doc.add_paragraph()
        str1 = “item “+ str(r+1) +”:\n”
        table.cell(r+1,0).paragraphs[0].add_run(str1).bold = True
        run = table.cell(r+1,0).paragraphs[0].add_run()
        pic = run.add_picture(path)
        pic.height = Cm(8)
        pic.width = Cm(12)
        #if (r+1)%2 ==0 : doc.add_page_break()
        #插入換頁符號,沒辦法斷開表格
    doc.add_paragraph(“\n next”) #插入新的段落,不會覆蓋前面的資料
    return None
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

加入好友
加入社群
Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *