使⽤docx_mailmerge库将access的数据批量定制⽣成word⽂档
⼀、数据源
1、word标准模板
2、access数据库(.mdb)
⼆、处理思路
1、读取access中的数据,提取出要写⼊word中的对应字段(若是中⽂字段名,建议重命名为字母);
2、使⽤word中的mergefield(合并字段)功能,在所需要写⼊数据的地⽅创建对应域;
3、使⽤docx_mailmerge、pypyodbc库对access中的数据进⾏提取、关联并批量写⼊新的word中。
3、代码如下:
# version:python3.7.0
# Character:UTF-8
# TIME:2019/7/9 11:52
# AUTHOR:LUO DI
import pypyodbc
from mailmerge import MailMerge
#读取模板
template = 'D://PYTHONPRACTICE//DATASOURCE//标准地籍调查表(7).docx'
#创建数据库链接,注意ACCESS的驱动问题
url = 'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=D:\PYTHONPRACTICE\DATASOURCE\TRS.mdb'
conn = pypyodbc.win_connect_mdb(url)
cur = conn.cursor()
result = cur.fetchall()
# row = 0
# for i in result:
#    document_new = MailMerge(template)
#    # print('{}⽂档中,邮件合并的字段包含:{}'.format(template, _merge_fields()))
#    str_list = list(map(str,i))
#    data = (ZDDM = str_list[1],
#                        QLRMC = str_list[2],
#                        TFH = str_list[3],
#                        QLRLX = str_list[4],
#                        QLRZJLX = str_list[5],
#                        QLRZJH = str_list[6],
#                        QSXZ = str_list[7],
access数据库生成网页版
#                        SYQLX = str_list[8],
#                        ZL = str_list[9],
#                        HH = str_list[10],
#                        SFYZHZ = str_list[11],
#                        ZMWJ = str_list[12],
#                        CQZH = str_list[13],
#                        ZDDH = str_list[14],
#                        PZYT = str_list[15],
#                        PZDLBM = str_list[16],
#                        SJYT = str_list[17],
#                        YTDLBM = str_list[18],
#                        PZNJ = str_list[19],
#                        ZDMJ = str_list[20],
#                        JZZDMJ = str_list[21],
#                        JZMJ = str_list[22],
#                        DCJS = str_list[23])
#    row += 1
#    document_new.write('D:\PYTHONPRACTICE\DATASOURCE\地籍调查报告-{}.docx'.format(row))
4、⽣成结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。