Donc, j'ai QTableWidget que je veux enregistrer dans un fichier .xls en utilisant le module xlwt ...PyQt: QTableWidget à .xls fichier
Voici le code:
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
Mais qui écrit que le texte de la cellule et rien d'autre 0,0 ...
Je pense que je l'ai fait une grave erreur ...
Mise à jour:
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
Résolu le problème ...
Des idées? N'importe qui? – Antoni4040
Question pour vous-- avec le self.tableWidget.item (ligne, col) .text()), j'obtiens une erreur "NoneType" cet objet n'a pas de valeur "text". Des idées? Merci d'avoir posté ceci - extrêmement utile! –
Peut-être parce qu'il n'y avait pas de texte dans une cellule en particulier, utilisez "try:" et "exceptTypeError:" et dites-moi ce que vous obtenez ... En passant, l'avez-vous converti en chaîne? Eh bien, je ne reçois aucune erreur comme ça ... – Antoni4040