Write tables from Word (.docx) to Excel (.xlsx) using xlsxwriter

BBT aishan0403 at gmail.com
Wed May 27 11:08:53 EDT 2020


I am trying to parse a word (.docx) for tables, then copy these tables over to excel using xlsxwriter. This is my code:

from docx.api import Document
import xlsxwriter
 
document = Document('/Users/xxx/Documents/xxx/Clauses Sample - Copy v1 - for merge.docx')
tables = document.tables
 
wb = xlsxwriter.Workbook('C:/Users/xxx/Documents/xxx/test clause retrieval.xlsx')
Sheet1 = wb.add_worksheet("Compliance")
index_row = 0
 
print(len(tables))
 
for table in document.tables:
data = []
keys = None
for i, row in enumerate(table.rows):
    text = (cell.text for cell in row.cells)
 
    if i == 0:
        keys = tuple(text)
        continue
    row_data = dict(zip(keys, text))
    data.append(row_data)
    #print (data)
    #big_data.append(data)
    Sheet1.write(index_row,0, str(row_data))      
    index_row = index_row + 1
 
print(row_data)
 
wb.close()


This is my desired output: https://i.stack.imgur.com/9qnbw.png

However, here is my actual output: https://i.stack.imgur.com/vpXej.png

I am aware that my current output produces a list of string instead.

Is there anyway that I can get my desired output using xlsxwriter?


More information about the Python-list mailing list