今天遇到一个神奇的问题,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))
结过还真跑起来了,输出的格式内容也检查了一下,没有问题;不过原因还是不太清楚,有没有别的后遗症也不知道?还请大佬能指点一下