python - 如何使用 Pandas 将 QTableWidget 数据导出到 Excel?

标签 python excel pandas pyqt5 qtablewidget

我正在尝试将数据从 QTableWidget 传递到 Excel。为什么在 Excel 中只写表格的最后一行? (在打印中,显示了完整的表格)。

rowCount = self.QTableWidget.rowCount()
columnCount = 5

for row in range(rowCount):
    rowData = []
    for column in range(columnCount):
        widgetItem = self.QTableWidget.item(row, column)
        if widgetItem and widgetItem.text:
            rowData.append(widgetItem.text())
        else:
            rowData.append('NULL')
    print(rowData)

df = pd.DataFrame(columns=rowData)
df.to_excel('Table.xlsx', index=False)

最佳答案

您需要创建一个列表列表来保存所有行:

rowCount = self.QTableWidget.rowCount()
columnCount = 5

# add this line
data = []

for row in range(rowCount):
    rowData = []
    for column in range(columnCount):
        widgetItem = self.QTableWidget.item(row, column)
        if widgetItem and widgetItem.text:
            rowData.append(widgetItem.text())
        else:
            rowData.append('NULL')
    print(rowData)

    # add this line
    data.append(rowData)

# change these two lines
df = pd.DataFrame(data)
df.to_excel('Table.xlsx', header=False, index=False)

关于python - 如何使用 Pandas 将 QTableWidget 数据导出到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72353511/

相关文章:

Python2.7 : FIlter out group from dataframe based on condition in groupby

python - 满足第一级条件时更改第二级多索引标签

python - 多索引 DataFrame - 利用其他行添加一行

python - 将 Sage 提供的 Scipy 与自己的 python 结合使用

python - python 列表中不太常见的单词

java - Apache POI 版本 3.8 是否有助于解决 "org.apache.poi.poifs.filesystem.OfficeXmlFileException"问题?

vb.net - 检测已安装的 Excel 版本(和 Service Pack)

python - ax.scatter() 语法无效?

遍历字符串列表的 Pythonic 方法?

java - 无法从 Java 代码将多个值写入 Excel