Python中关于Excel文件转Word文件的个人问题

我使用的是Document库和openpyxl库,

在Excel表格转Word文件时提示错误“int object is not iterable”

下面是正确代码

import openpyxl
from docx import Document

wb=openpyxl.load_workbook("学生成绩表.xlsx")
sheet=wb["成绩汇总"]
#获取工作表表的最大行和列
maxrow=sheet.max_row
maxcolumn=sheet.max_column

#新建docunment对象
doc=Document()
# 添加段落对象
paragraph = doc.add_paragraph("hello world")
#插入段 落使用一个段落作为“光标”,并在其上插入一个新段落。
paragraph.insert_paragraph_before("Python")

#在Word文档中添加行和列
table=doc.add_table(rows=maxrow,cols=maxcolumn,style="Table Grid")
#遍历文档中的表格
for r in range(1,maxrow+1):
    for c in range(1,maxcolumn+1):
        table.cell(r-1,c-1).text=str(sheet.cell(row=r,column=c).value)
wb.save("学生成绩表.xlsx")
doc.save("test.docx")

问题的产生

在遍历文档中表格赋值时,使用嵌套的for循环,始终有这么一个错误
在这里插入图片描述
这个错误很好理解,提示你int对象不可迭代,意思是你循环无法执行
在搜索资料时都说循环的对象应该是一组数或者可遍历的,可是我循环语句没有问题,下标也没问题,Excel中起始位置为(1,1),Word文件中表格起始位置为(0,0)

所以,问题不是在循环语句,而是在从Excel文件往Word文件赋值出现了问题

这是我当时错误的代码写法

 table.cell(r-1,c-1).text=sheet.cell(row=r,column=c).value

与正确代码的不同,没有转换数据类型为str,在Document库,Word文件表格中的数据必须全都是str类型,否则就无法录入,但在openpyxl库中Excel文件表中数据不限制数据类型,从而导致Excel文件中 int 型数据无法传递给Word文件,产生这个错误,只需要加上类型转换str()即可正确运行

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值