精英干员瑕光 2023-12-21 10:20 采纳率: 76.5%
浏览 9
已结题

pywin32 excel转pdf报错

批量将excel另存为pdf,在某一份文件时报错,不知道是什么原因,其他excel文件都没有问题,拿出来单独运行代码依然报错
报错信息

Traceback (most recent call last):
  File "C:\Users\gz\Desktop\eb\worf\main.py", line 324, in run
    self.openexcel()
  File "C:\Users\gz\Desktop\eb\worf\main.py", line 277, in openexcel
    self.exceltopdf(i)
  File "C:\Users\gztsrayz\Desktop\search2web\word-pdf\main.py", line 290, in exceltopdf
    ws.ExportAsFixedFormat(0, self.name[i][:-4])    #不需带文件后缀
  File "<COMObject <unknown>>", line 6, in ExportAsFixedFormat
pywintypes.com_error: (-2147352567, '发生意外。', (0, None, None, None, 0, -2147024809), None)

#数据来源(遍历得到文件位置,并且其他文件均无问题,所以路径不应有问题)
            for i in os.listdir(self.path_excels):
                if i.split('.')[-1] in ['xlsx','xls']:
                    this_excel = os.path.join(self.path_excels,i)
                    self.excels.append(this_excel)

    def openexcel(self):
        self.excel = win32com.client.DispatchEx('Excel.Application')
        self.excel.Visible = False  # 是否可视化
        self.excel.DisplayAlerts = False
        
        for i in range(len(self.excels)):
            self.exceltopdf(i)

        self.close_excel_by_force()
    def exceltopdf(self,i):
        
        wb = self.excel.Workbooks.Open(self.excels[i], ReadOnly=False)
        ws = wb.Worksheets(1)
        
        # target_name=os.path.join(self.pdf_small,self.name[i])
        ws.PageSetup.Zoom = False
        ws.PageSetup.FitToPagesTall = 1
        ws.PageSetup.FitToPagesWide = 1
        print(self.excels[i],self.name[i])
        ws.ExportAsFixedFormat(0, self.name[i][:-4])    #不需带文件后缀

        wb.Close()
  • 写回答

4条回答 默认 最新

  • 精英干员瑕光 2023-12-21 14:03
    关注

    读到隐藏表了,遍历获取到第一个没隐藏的

            a=1
            while not self.wb.Worksheets(a).Visible:
                a+=1
            ws = self.wb.Worksheets(a)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 修改了问题 12月21日
  • 创建了问题 12月21日

悬赏问题

  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)
  • ¥20 物理远程控制麦克风使用问题
  • ¥15 打印预览会泄漏纸钱包密码吗
  • ¥15 在hololens1上运行unity项目只有空窗口
  • ¥25 TABLEAU PREP无法打开
  • ¥15 百度帐号问题/centos
  • ¥15 关于#c语言#的问题:求完整代码条件好说
  • ¥100 HALCON DELPHI
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)