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

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日

悬赏问题

  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
  • ¥15 SQL Server analysis services 服务安装失败
  • ¥15 用html创建一个个人网页,提供网页页面
  • ¥20 java项目连接SqlServer数据库报错
  • ¥15 基于面向对象的图书馆借阅管理系统
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥20 centos linux 7.9安装php8.2.18不支持mysqli模块的问题
  • ¥15 stata空间计量LM检验
  • ¥15 NAO机器人说出txt文本内容
  • ¥15 关于k8s node节点被释放后如何驱逐节点并添加新节点