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循环,始终有这么一个错误
Python中关于Excel文件转Word文件的个人问题_第1张图片
这个错误很好理解,提示你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()即可正确运行

你可能感兴趣的:(Python第三方库)