python利用docxtpl将excel数据写入word表格 |
您所在的位置:网站首页 › ffmpeg文件读取漏洞 › python利用docxtpl将excel数据写入word表格 |
解决问题一:将excel数据读取,并将其保存在word中的表格 解决问题二:使用xlrd读入excel数据,如果是整数的话,打开word后发现保存变成了浮点数,后边多了“.0”。 问题一、 可以参考docxtpl快速上手使用,数据填入以及循环写入表格_sxuccs的博客-CSDN博客 docxtpl/python-docx_雪球干死黄旭东的博客-CSDN博客 首先在word里边编写模板,大概这个样子: 填充数据的地方最少要写三行: 一行是 {%tr for item in list%}中间是你要填充的数据,都写成这种形式就好(把xxx替换掉): {{item.xxx}}最后一行写end {%tr endfor%}这样有多少数据就会自动填充多少行啦。 将excel数据导入word我是这么写的: ##前边首先打开读取excel,这部分没写 list1 = [] for i in range(nrows): name = sheet.cell_values(i,1) num = sheet.cell_values(i,2) dic = {'name':name,'num':num} list1.append(dic) context = {"list" : list1} doc.render(context) doc.save("1.docx")问题二: 我的数据格式是姓名;数字 例如 张三;125 在开始处理的时候我将excel数据进行了分列,一列姓名一列数字,但是运行完之后打开word却发现里边的数据变成了这样: 张三125.0原来的整数变成了浮点数。于是我尝试将excel数据设置成了“文本”,再次运行代码后发现没有用。 于是我不再将数据分列处理,直接将代码写成了这样: value = sheet.cell_values(i,1) name = value.split(";",1)[0] num = value.split(";",1)[1]这样就搞定了。后来我继续查阅了一些资料 参考在Python中使用xlrd读取数字Excel数据作为文本 - 行业资讯 - 电子产品设计开发与电子技术学习交流! 他这个排版有点乱,意思是这样的: cell = sheet.cell(r,c) cell_value = cell.value if cell.ctype in (2,3) and int(cell_value) == cell_value: cell_value = int(cell_value)其实挺好理解的,但是这个2,3我没有看懂,继续查了资料原来是这个意思: 参考Python操作 Excel_sheet.cell_超级代码的博客-CSDN博客 cell.value:这个单元格中的值 cell.ctype:这个单元格的数据类型 print(sheet.cell(0,1).ctype) # 1 姓名 文本 print(sheet.cell(2,2).ctype) # 2 100 数字 Cell数据类型 xlrd.XL_CELL_TEXT 文本类型xlrd.XL_CELL_NUMBER 数值类型xlrd.XL_CELL_DATE 日期类型xlrd.XL_CELL_BOOLEAN 布尔类型xlrd.XL_CELL_BLANK 空白类型所以23就代表数据类型是数值或者日期 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |