Python PyQt5 qtableWidget 到 excel 错误

Posted

技术标签:

【中文标题】Python PyQt5 qtableWidget 到 excel 错误【英文标题】:Python PyQt5 qtableWidget to excel eror 【发布时间】:2021-04-20 08:30:32 【问题描述】:
Traceback (most recent call last):
  File "C:\Users\umutcelik\Desktop\Debi\DebiHesabi.py", line 181, in exportToExcel
    df.at[row, columnHeaders[col]] = self.tableWidget.item(row, col).text()
AttributeError: 'NoneType' object has no attribute 'text'
PS C:\Users\umutcelik\Desktop\Debi>`

当我运行下面的方法时,我得到了上面的错误。问题是什么?谢谢。

def exportToExcel(self):
        wb = openpyxl.Workbook()
        columnHeaders = []

        # create column header list
        for j in range(self.tableWidget.columnCount()):
            columnHeaders.append(self.tableWidget.horizontalHeaderItem(j).text())

        df = pd.DataFrame(columns=columnHeaders)
        print(df)

        # create dataframe object recordset
        for row in range(self.tableWidget.rowCount()):
            for col in range(self.tableWidget.columnCount()):
                df.at[row, columnHeaders[col]] = self.tableWidget.item(row, col).text()

        df.to_excel('deneme.xlsx', index=False)
        os.system("deneme.xlsx")`

【问题讨论】:

【参考方案1】:

并非每个单元格都有与之关联的 QTableWidgetItem,因此您应该检查它是否为无:

for row in range(self.tableWidget.rowCount()):
    for col in range(self.tableWidget.columnCount()):
        item = self.tableWidget.item(row, col)
        df.at[row, columnHeaders[col]] = item.text() if item is not None else ""

【讨论】:

以上是关于Python PyQt5 qtableWidget 到 excel 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PyQt5 Python 将 QTableWidget 数据转换为 PDF

Python PyQt5 qtableWidget 到 excel 错误

Python PyQt5 QTableWidget contextMenuEvent setStyleSheet 子菜单背景色

PyQt5如何使用python在迭代循环中更新单元格值Qtablewidget

Pyqt5 qtablewidget 检测单元格何时更改

QTablewidget 在 PyQt5 中不显示新的 cellWidgets