Python抽取Word表格保存為Excel

只支持docx格式,根據(jù)內(nèi)容過濾指定表格的時(shí)候需要加上條件,比如table.rows>1否則遇到只有單行表格table.cell可能會(huì)觸發(fā)list out of range異常

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import docx
from docx import Document
import xlwt;
import xlrd;
import glob

def readdoc(filename):
    doc = Document(filename)
    n = 0
    m = 0
    j = 0
    for table in doc.tables:
        table_temp = []
        table_temp.insert(0,filename)
        if len(table.rows) > 1 and table.cell(1, 0).text.strip() == "輸入項(xiàng)名稱":
            m = m + 1
            for row in table.rows:
                row_temp = []
                j = j + 1
                for cell in row.cells:
                    row_temp.append(cell.text)
                table_temp.append(row_temp)
            tables.append(table_temp)
        n = n + 1
    print("File name:" + filename + " tables:" + repr(n) + " parsed:" + repr(m))
    return tables

def writeExcel(tables,filename):

    # bold font
    style = xlwt.easyxf('font: bold 1')

    Sheet_index = 0
    workbook = xlwt.Workbook(encoding='utf-8')
    worksheet = workbook.add_sheet('sheet' + str(Sheet_index),cell_overwrite_ok = True)
    Sheet_index = Sheet_index + 1
    j = 0
    for table in tables:
        for rows in table:
            j = j + 1
            r = table.index(rows)
            if r == 0:
                # write filename with style
                worksheet.write(j,0,rows,style)
            else:
                # write table
                for cell in rows:
                    c = rows.index(cell)
                    #print(r,c,cell)
                    worksheet.write(j,c,cell)
    workbook.save(filename[:-5] + ".xls")

filenames = glob.iglob("**/*.docx", recursive=True)
tables = []
for filename in filenames:
    tables = readdoc(filename)

writeExcel(tables,filename)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,918評(píng)論 0 13
  • (注1:如果有問題歡迎留言探討,一起學(xué)習(xí)!轉(zhuǎn)載請(qǐng)注明出處,喜歡可以點(diǎn)個(gè)贊哦?。ㄗ?:更多內(nèi)容請(qǐng)查看我的目錄。) ...
    love丁酥酥閱讀 4,532評(píng)論 2 5
  • jack徐杰閱讀 367評(píng)論 0 1
  • (一) 親愛的月亮, 你在天上, 吸引著我的目光。 . 小月牙兒,那么可愛, 我靠近了山坡, 你躲進(jìn)了山坡。 . ...
    栗子六壹閱讀 1,039評(píng)論 0 49
  • 資產(chǎn)是公司擁有的并且可以適用進(jìn)而創(chuàng)造更多財(cái)產(chǎn)的資源。 公司的資產(chǎn)包括現(xiàn)金、銀行存款、廠房、設(shè)備、投資收益等。 資產(chǎn)...
    snailwww閱讀 228評(píng)論 1 4

友情鏈接更多精彩內(nèi)容