#!/usr/bin/env python # -*- coding: utf-8 -*- ''' ''' from docx import Document from docx.shared import Inches class Record(object): def __init__(self): self.recordset=[] class OutDocx(object): def __init__(self): self.recordset=[ {'id':1,'qty':'test1','desc':'描述1'}, {'id':2,'qty':'test2','desc':'描述2'}, {'id':3,'qty':'test3','desc':'描述3'}] def get_docx(self): document = Document() document.add_heading('Document Title', 0) p = document.add_paragraph('A plain paragraph having some ') p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True document.add_heading('Heading, level 1', level=1) document.add_paragraph('Intense quote', style='Intense Quote') document.add_paragraph('first item in unordered list', style='List Bullet') document.add_paragraph('first item in ordered list', style='List Number') document.add_picture('monty-truth.png', width=Inches(1.25)) table = document.add_table(rows=1,cols=3) table.style = 'TableGrid' hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Qty' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' for item in self.recordset: row_cells = table.add_row().cells row_cells[0].text = str(item['qty']) row_cells[1].text = str(item['id']) row_cells[2].text = item['desc'] document.add_page_break() document.save('demo.docx') if __name__ == '__main__': test = OutDocx() test.get_docx()