python利用docxtpl将excel数据写入word表格

您所在的位置:网站首页 ffmpeg文件读取漏洞 python利用docxtpl将excel数据写入word表格

python利用docxtpl将excel数据写入word表格

2023-07-07 11:55| 来源: 网络整理| 查看: 265

解决问题一:将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