所以,我有一个QTableWidget,我想用xlwt模块将它保存到一个.xls文件。。。
代码如下:
def savefile(self):
filename = unicode(QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', ".xls(*.xls)"))
wbk = xlwt.Workbook()
self.sheet = wbk.add_sheet("sheet")
self.row = 0
self.col = 0
self.add2(self.row, self.col)
wbk.save(filename)
def add2(self, row, col):
for i in range(self.tableWidget.columnCount()):
for x in range(self.tableWidget.rowCount()):
try:
teext = str(self.tableWidget.item(row, col).text())
self.sheet.write(row, col, teext)
row += 1
except AttributeError:
pass
col += 1
但这只会写出0,0单元格中的文本,而没有其他内容。。。
我想我犯了一个严重的错误。。。
更新:
def savefile(self):
filename = unicode(QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', ".xls(*.xls)"))
wbk = xlwt.Workbook()
self.sheet = wbk.add_sheet("sheet", cell_overwrite_ok=True)
self.add2()
wbk.save(filename)
def add2(self):
row = 0
col = 0
for i in range(self.tableWidget.columnCount()):
for x in range(self.tableWidget.rowCount()):
try:
teext = str(self.tableWidget.item(row, col).text())
self.sheet.write(row, col, teext)
row += 1
except AttributeError:
row += 1
row = 0
col += 1
解决了这个问题。。。
您还可能发现,使用范围(或xrange)的输出作为tableWidget.item调用的索引比担心增加自己的计数器更简洁、更容易。您可能在代码中的其他位置使用了工作表本身,但如果您没有使用,它将为您节省一些内存,以便不将工作表指定为类的属性变量:
因为使用的是range命令,所以currentColumn变量将从0增加到columnCount(),currentRow将从0增加到currentRow()
相关问题 更多 >
编程相关推荐