Tak, mam QTableWidget że chcę zapisać go do pliku .xls przy użyciu modułu xlwt ...PyQt: QTableWidget do pliku .xls
Oto kod:
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
Ale że pisze się tylko tekst z komórki 0,0 i nic więcej ...
myślę, że zrobiłem jakiś poważny błąd ...
Aktualizacja:
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
rozwiązało problem ...
Jakieś pomysły? Ktoś? – Antoni4040
Pytanie dla ciebie - z self.tableWidget.item (row, col) .text()), pojawia się błąd "NoneType", który nie ma wartości "text". Jakieś pomysły? Dzięki za opublikowanie tego - niezmiernie pomocna! –
Może dlatego, że nie było tekstu do jednej konkretnej komórki, użyj "try:" i "z wyjątkiem NoneTypeError:" i powiedz mi, co otrzymujesz ... A tak przy okazji, czy przekonwertowałeś ją na ciąg? Cóż, nie mam żadnych takich błędów ... – Antoni4040