python實現同一word中的表格分別提取並保存到不同文件下


參考地址有:

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('全部完成')

 

 

歡迎交流 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM