基于pandas导出后缀名为.xls时报错:文件类型:没有xls引擎

基于pandas导出后缀名为.xls时报错:文件类型:没有xls引擎
1.这是什么意思?
2.如何解决?
能帮忙解决下吗,Python小小初学者十分感谢🙏

安装一下pip install xlwt

安装xlrd。或者文件名结尾的xls修改为xlsx看看

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7465157
  • 这篇博客你也可以参考下:Pandas和xlrd读取xls报错解决方法
  • 除此之外, 这篇博客: xls批量转换为xlsx格式文件中的 方法1:Python pandas库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    使用Python pandas库的to_excel方法来另存为xlsx格式。

    考虑到Excel文件一般有多个工作表,需要都读出来然后保存。下面直接给出代码:

    import glob
    import os
    import time
    import pandas as pd
    
    class excelConvert():
    
        def __init__(self):
            self.path = os.getcwd()  # 当前工作路径
            xlsxdirname = "xlsx"
            xlsxpath = os.path.join(self.path, xlsxdirname)
    
            if not os.path.exists(xlsxpath):
                print(f"创建文件夹: {xlsxdirname}")
                os.makedirs(xlsxpath)
            self.xlsxpath = xlsxpath
    
        def batch_convert(self):
            xls_files = glob.glob(self.path + "/*.xls")
            if len(xls_files) != 0:
                print('当前目录下的xls格式文件:')
                for file in xls_files:
                    print(os.path.basename(file))
    
                    fname, _ = os.path.splitext(file)
                    basename = os.path.basename(fname)
                    xlsxpathname = os.path.join(self.xlsxpath, basename)
                    self.saveasxlsx(file, xlsxpathname)
            else:
                print('该目录下无xls格式文件,即将退出...')
                time.sleep(2)
                os._exit(0)
    
        def saveasxlsx(self, xlspath, xlsxpath):
            writer = pd.ExcelWriter(xlsxpath + '.xlsx')
            datas = pd.read_excel(xlspath,sheet_name=None)
            for sheetname, values in datas.items():
                data = pd.DataFrame(values)
                data.to_excel(writer, sheet_name=sheetname)
            writer.save()
            writer.close()
    
    if __name__=='__main__':
        excel = excelConvert()
        excel.batch_convert()
    

    使用上述代码无法保留原Excel文件中的单元格样式,接下来介绍使用VBA代码进行转换。

  • 您还可以看一下 乌云毕力格老师的python之pandas玩转excel表格教程课程中的 18.【把一列数据分割成两列】小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    回答: "没有xls引擎"的报错意味着你未安装支持xls文件的xls引擎,可以通过安装openpyxl或者xlrd来支持xls文件的读取。具体的安装方法可以在终端输入以下命令:

    pip install openpyxl
    pip install xlrd
    

    如果这两个包都安装了,还是出现“没有xls引擎”的报错,可能是Pandas版本不兼容,可以考虑升级Pandas到最新版本。如果还出现问题,请尝试使用to_excel方法导出文件,示例代码可以参考参考资料中的段落1。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^