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数据类型

  1. xlrd.XL_CELL_TEXT 文本类型
  2. xlrd.XL_CELL_NUMBER 数值类型
  3. xlrd.XL_CELL_DATE 日期类型
  4. xlrd.XL_CELL_BOOLEAN 布尔类型
  5. xlrd.XL_CELL_BLANK 空白类型

 所以23就代表数据类型是数值或者日期

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python中的openpyxl和python-docx库来实现将Excel数据写入Word的功能。 具体步骤如下: 1. 使用openpyxl库读取Excel文件中的数据。 2. 使用python-docx库创建一个新的Word文档。 3. 将Excel数据逐行写入Word文档中。 4. 保存Word文档。 代码示例: ```python import openpyxl from docx import Document # 打开Excel文件 wb = openpyxl.load_workbook('data.xlsx') sheet = wb.active # 创建一个新的Word文档 doc = Document() # 将Excel数据逐行写入Word文档中 for row in sheet.iter_rows(min_row=2): # 获取Excel数据 name = row[0].value age = row[1].value gender = row[2].value # 将数据写入Word文档中 doc.add_paragraph(f'姓名:{name}') doc.add_paragraph(f'年龄:{age}') doc.add_paragraph(f'性别:{gender}') doc.add_page_break() # 保存Word文档 doc.save('data.docx') ``` 注意:在使用openpyxl库读取Excel文件时,需要安装openpyxl库。在使用python-docx库创建Word文档时,需要安装python-docx库。 ### 回答2: Python是一种功能强大且广泛使用的编程语言,可以轻松地将数据从电子表格文件中提取并将其写入Word文档中。Python中包含了很多可用的库,例如openpyxl和python-docx,使用这些库可以非常方便地完成这个任务。 首先,我们需要安装这两个库。openpyxl库可以帮助我们访问和编辑Excel文件中的数据,而python-docx库可以用于创建和编辑Word文档。 要使用openpyxl库,我们需要导入它并打开Excel文件。例如,下面的代码打开名为“data.xlsx”的Excel文件,并将第一个工作表中的数据存储在名为“worksheet”的变量中: ```python import openpyxl workbook = openpyxl.load_workbook('data.xlsx') worksheet = workbook.active ``` 接下来,我们需要使用python-docx库创建一个新的Word文档。我们可以使用Document类来实现这一点。下面的代码创建了一个新的Word文档: ```python from docx import Document document = Document() ``` 完成这些准备工作后,我们可以开始将Excel数据添加到Word文档中。我们可以使用table对象来保存要写入Word文档的数据。下面的代码创建一个包含三行和三列的表格,并将Excel数据添加到其中: ```python from docx.shared import Inches table = document.add_table(rows=3, cols=3) for i, row in enumerate(worksheet.iter_rows(values_only=True)): if i == 0: table.cell(i, 0).text = str(row[0]) table.cell(i, 1).text = str(row[1]) table.cell(i, 2).text = str(row[2]) else: row_cells = table.add_row().cells row_cells[0].text = str(row[0]) row_cells[1].text = str(row[1]) row_cells[2].text = str(row[2]) ``` 最后,我们可以将保存有Excel数据Word文档写入磁盘。下面的代码将Word文档保存为“output.docx”: ```python document.save('output.docx') ``` 以上就是使用PythonExcel数据写入Word文档的所有步骤。使用这些代码可以轻松地进行数据格式化和大规模批处理,使得这个任务变得简单、快速、高效。 ### 回答3: Python作为一种高级编程语言,提供了强大的库和工具来管理各种数据文件,包括ExcelWord文档。Python可以轻松读取Excel数据并将其写入Word文档。 首先,需要安装第三方库“openpyxl”和“python-docx”。这两个库都可以在命令行上通过“pip install”命令进行安装。安装完成后,我们可以在Python代码中使用它们。 接下来,我们需要导入这两个库并打开Excel文件。使用“openpyxl.load_workbook”方法可以打开指定的Excel文件。例如,以下代码将打开名为“data.xlsx”的文件: ``` import openpyxl workbook = openpyxl.load_workbook('data.xlsx') ``` 之后,我们需要获取Excel数据,可以使用“workbook.active”属性获取活动工作表,再使用“cell”的“value”属性或“row”的“values”属性获取单元格或一行数据。例如,以下代码获取第一个工作表的A2单元格的值和第二行的所有值: ``` worksheet = workbook.active # 获取A2单元格的值 value = worksheet.cell(row=2, column=1).value # 获取第二行的所有值 values = [cell.value for cell in worksheet['2']] ``` 接下来,我们需要创建一个新的Word文档。使用“Document”类可以创建一个新的文档。例如,以下代码创建了一个新的文档: ``` from docx import Document document = Document() ``` 创建了新文件后,我们可以使用Python代码来向其中添加文本,表格等信息。比如,以下代码向创建的文档中添加一个表格并填充内容: ``` from docx import Document from docx.shared import Inches # 创建一个新文档 document = Document() # 添加一个表格 table = document.add_table(rows=3, cols=3) # 填充表格内容 data = ((1, 2, 3), (4, 5, 6), (7, 8, 9)) for i, row in enumerate(table.rows): for j, cell in enumerate(row.cells): cell.text = str(data[i][j]) # 保存文档 document.save('output.docx') ``` 最后,我们需要将Excel数据写入Word文档中。我们可以使用Python的循环遍历Excel数据并将其写入Word表格中,或将其作为文本写入Word文档中。 综上,PythonExcel数据写入Word可以分为三个步骤:打开Excel文件并获取数据、创建新的Word文档并添加表格或文本、将Excel数据写入Word文档中。Python作为一种高级编程语言,其相对于其他编程语言在数据处理方面具有优势。通过Python处理数据的灵活性和便捷性,减少了编写大量的Excel VBA或Word VBA软件的工作和时间成本,提高了数据处理效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值