xlwt 写入报 struct.error: required argument is not an integer 问题

文章讲述了在使用xlwt库写入Excel时遇到struct.error,提示requiredargumentisnotaninteger。作者通过检查代码并尝试将参数强制转换为整数解决了问题,工作簿成功保存且内容无误,但对原因和可能的后遗症尚不清楚。
摘要由CSDN通过智能技术生成

今天遇到一个神奇的问题,xlwt 写入报 struct.error: required argument is not an integer,有关系代码部分如下 

self.writedir=self.comparesavepathtextEdit.toPlainText()+'/'+self.transnamelisttextEdit.toPlainText()+'.xls'
#pyqt5界面用户选择保存路径和用户输入的文件名

DataWrite.writedataxls(DataCheck.resultlist,SourceInput.formconfigpath,self.writedir)
#对目标list,采用formconfig.ini里的格式,写入writedir的路径

def writedataxls(resultlist,Formconfig,Writedir):
            #....上面都检查过,到这里都没问题
    workBook.save(Writedir) #报错就在这里

运行之后抛出了一个输入非整数错误,目标在get_biff_data这个函数上

  File "C:\Users\xialu\AppData\Roaming\Python\Python310\site-packages\xlwt\Cell.py", line 18, in get_biff_data
    return pack('<5HL', 0x00FD, 10, self.rowx, self.colx, self.xf_idx, self.sst_idx)
struct.error: required argument is not an integer

这里想着,既然说数据类型不对,那我强制转换一下试试,跑到xlwt的cell.py里面改一下,把返回的参数全部加上int()

    def get_biff_data(self):
        # return BIFFRecords.LabelSSTRecord(self.rowx, self.colx, self.xf_idx,                 
        self.sst_idx).get()
        return pack('<5HL', 0x00FD, 10, int(self.rowx), int(self.colx), int(self.xf_idx), 
  int(self.sst_idx))

结过还真跑起来了,输出的格式内容也检查了一下,没有问题;不过原因还是不太清楚,有没有别的后遗症也不知道?还请大佬能指点一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值