LiWFW6 2022-05-07 01:19 采纳率: 100%
浏览 95
已结题

PyQt5运行查询MYsql后导出Excel出错并窗口闪退

问题遇到的现象和发生背景
         PyQt5运行查询MYsql后导出Excel出错并窗口闪退,请大佬帮忙看看哪里错了?
问题相关部分代码
    def saveFile(self):
    file, ok = QFileDialog.getSaveFileName(self, "文件保存", "F:/", "Excel 97-2003 工作簿(*.xls)")
    if file != '':
        if 'xls' in file:
            count = self.cur.execute(self.sql_order)
            self.cur.scroll(0, mode='absolute')
            results = self.cur.fetchall()
            fields = self.cur.description
            workbook = xlwt.Workbook()
            sheet = workbook.add_sheet('table_' + self.table_name, cell_overwrite_ok=True)
            for field in range(len(fields)):
                sheet.write(0, field, fields[field][0])
            row = 1
            col = 0
            for row in range(1, len(results) + 1):
                for col in range(len(fields)):
                    sheet.write(row, col, '%s' % results[row - 1][col])
            workbook.save(file)
            print('文件已保存至%s' % file)
        
运行结果及报错内容
         Traceback (most recent call last):
         File "F:\XXX\XXXXX.py", line 339, in saveFile
         count = self.cur.execute(self.sql_order)
         AttributeError: 'MyWindow' object has no attribute 'sql_order'

         进程已结束,退出代码-1073740791 (0xC0000409)
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-07 07:38
    关注

    报错信息很清楚了
    self.sql_order这个变量不存在,没定义
    你最好把查询和写入分开成2个方法,一来解耦,更方便复用;二来也更容易排查到底是哪个步骤出了问题
    不要把原本不相干的工作都塞到一个函数里面执行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵