初学对于很多格式转换不熟悉,研究了一天才搞定读取excel单元格中的日期合并到word中对应域,
date=str(datetime.datetime.fromtimestamp((table.row_values(i)[2] - 25569) * 86400.0).date()) #读取excel日期单元格,把float转成日期格式,再转换成字符格式,才能写入word文本域。如果excel值为数字也是要转换格式的,例如:str(int(table.row_values(i)[3]))取整数
import xlrd # 引入Excel读取模块
from mailmerge import MailMerge # 引用邮件处理模块
import datetime
datafile_path = 'D:/py/code/test/lz.xlsx' # 表格位置
data = xlrd.open_workbook(datafile_path) # 获取数据
table = data.sheet_by_name('Sheet') # 这里的表名要注意
nrows = table.nrows
template = 'D:/py/code/test/test.docx' # 模版位置
for i in range(nrows): # 循环逐行打印
if i > 0: # 排除0项无用数据
document = MailMerge(template)
document.merge(
GID=table.row_values(i)[0],
name=table.row_values(i)[1],
date=str(datetime.datetime.fromtimestamp((table.row_values(i)[2] - 25569) * 86400.0).date()) #读取日期转换为字符
)
wordname = table.row_values(i)[1] + '.docx'
document.write(wordname)
网友评论