參考地址有:
https://www.cnblogs.com/xiao987334176/p/9995976.html
https://www.jianshu.com/p/9ad7db7825ba
https://blog.csdn.net/xtfge0915/article/details/83479933
https://blog.csdn.net/xtfge0915/article/details/83478639
行列數固定的情況
import docx import os import xlwt from docx import Document import pandas as pd import numpy as np doc1= Document('./target.docx') tb1=doc1.tables[0] row_cells=tb1.rows[0].cells tables=doc1.tables all_list = [] for i in range(0,2): tb=tables[i] #獲取表格的行 tb_rows=tb.rows #讀取每一行內容 for i in range(len(tb_rows)): row_data=[] row_cells=tb_rows[i].cells for cell in row_cells: #單元格內容 row_data.append(cell.text) #print(row_data) all_list.append(row_data) k= np.array(all_list) k.reshape(-1,1) num = 2 #第幾章表格 rows=10 #建表的長度 cols=6 #建表的列數 for i in range(num): print(i) filename = str('table{}.docx'.format(i)) print(filename,"正在創建") document = Document() #創建10行6列表格 table = document.add_table(rows, cols) table.style = document.styles['Table Grid'] # 表格樣式 for row in range(rows): for col in range(cols): # print(k[(i+1)*row][col]) table.cell(row,col).text=str(k[(i+1)*row][col]) document.save(filename) print(filename,"寫入完成且保存")
行數變化,列數固定的情況
import docx
import os
import xlwt
from docx import Document
import pandas as pd
import numpy as np
doc1= Document('./ygt.docx')
tb1=doc1.tables[0]
row_cells=tb1.rows[0].cells
tables=doc1.tables
all_list = []
num = 5 #第幾章表格-1
each_listrow=[] #用來存儲所有的美張表格的行數
for i in range(0,num):
tb=tables[i]
#獲取表格的行
tb_rows=tb.rows
# print(len(tb_rows))
each_listrow.append(len(tb_rows))
#讀取每一行內容
for i in range(len(tb_rows)):
row_data=[]
row_cells=tb_rows[i].cells
for cell in row_cells:
#單元格內容
row_data.append(cell.text)
#print(row_data)
all_list.append(row_data)
# print(all_list)
# print(each_listrow)
k= np.array(all_list)
k.reshape(-1,1)
historyrow=0
# rows=10 #建表的長度
cols=6 #建表的列數
# len(tb_rows)每一張表格的行數
for i in range(num):
print(i)
filename = str('table{}.docx'.format(i))
print(filename,"正在創建")
document = Document()
#創建10行6列表格
table = document.add_table(each_listrow[i], cols)
table.style = document.styles['Table Grid'] # 表格樣式
for row in range(each_listrow[i]):
for col in range(cols):
# print(k[(i+1)*row][col])
if i ==0:
table.cell(row,col).text=str(k[row,col])
elif i!=0:
table.cell(row,col).text=str(k[row+historyrow,col])
document.save(filename)
print(filename,"寫入完成且保存")
historyrow+=each_listrow[i]
print('全部完成')
歡迎交流