【发布时间】:2020-12-18 16:27:52
【问题描述】:
我有一个包含数据的 qtablewidet,当用户单击导出按钮时,会出现一个对话框,要求将文件名另存为 excel,我该如何使用 openpyxl?
这是我的代码
self.exportbtn.clicked.connect(self.export)
def export(self):
try:
filename = QtWidgets.QFileDialog.getSaveFileName(self, 'Save file', '','Excel files(*.xlsx)')
wb = Workbook()
sheet = wb.active
for column in range(self.tableWidget.columnCount()):
for row in range(self.tableWidget.rowCount()):
try:
text = str(self.tableWidget.item(row, column).text())
sheet.write(row, column, text)
wb.save(filename)
except Exception as e:
print("Error Writing file.")
except Exception as e:
print("Error Saving file.")
当我尝试从对话框中单击保存时,现在的输出是这样的
如何使用 openpyxl 将包括来自 qtablewidget 的标头在内的整个数据保存到 excel 文件中?
更新: 我现在编辑了我的代码,我能够创建文件,但是来自 qtablewidget 的数据仍然没有写入 excel 文件中
def export(self):
filename, filter = QtWidgets.QFileDialog.getSaveFileName(self, 'Save file', '','Excel files (*.xlsx)')
wb = Workbook()
sheet = wb.active
if not filename:
for column in range(self.tableWidget.columnCount()):
for row in range(self.tableWidget.rowCount()):
try:
text = str(self.tableWidget.item(row, column).text())
sheet.write(row, column, text)
except AttributeError:
pass
wb.save(filename)
我尝试从 qtablewidget 打印数据,它显示,它只是没有保存在 excel 文件中,是否还缺少某些东西?
【问题讨论】:
-
更改为
print("Error Writing file.", e)
标签: python excel pyqt5 openpyxl qtablewidget