python使用pandas和openpyxl或者xlrd库读取wps生成的xlsx出错(zipfile.BadZipFile: File is not a zip file),如何解决
2条回答 默认 最新
关注引用 皆我百晓生 小程序回复内容作答:
出现该错误的原因是WPS表格文件的格式不是标准的xlsx格式,而是一种特殊的格式(例如.et表格文件)。要解决这个问题,你可以尝试以下方法:
将WPS表格文件手动另存为xlsx格式。在WPS表格中打开文件,然后选择“文件”-“另存为”,将文件保存为xlsx格式。然后再尝试使用pandas和openpyxl或者xlrd库读取。
使用pandas的高级读取函数read_excel。pandas的read_excel函数可以读取多种不同文件格式的表格数据,包括WPS表格文件。使用该函数时,需要指定
engine='pyxlsb'参数以支持WPS表格文件。示例代码如下:
import pandas as pd df = pd.read_excel('wps_file.et', engine='pyxlsb')你需要将
'wps_file.et'替换为你的WPS表格文件的路径。- 将WPS表格文件手动转换为标准的xlsx格式。可以使用WPS表格软件打开文件,然后选择“文件”-“另存为”,将文件保存为xlsx格式。然后再尝试使用pandas和openpyxl或者xlrd库读取。
如果以上方法都无法解决问题,可能是因为WPS表格文件的格式比较特殊,无法被常规的库读取。你可以尝试使用其他解决方案,如使用Python的zipfile库解压缩文件并读取其中的数据。示例代码如下:
import zipfile import pandas as pd def read_wps_excel(file_path): with zipfile.ZipFile(file_path) as z: with z.open('xl/workbook.xml') as f: workbook_xml = f.read() df = pd.read_xml(workbook_xml) return df df = read_wps_excel('wps_file.et')以上代码使用zipfile模块打开WPS文件,然后读取其中的
xl/workbook.xml文件,该文件包含了表格的结构和数据。然后使用pandas的read_xml函数读取该文件并转换为DataFrame。请注意,这种方法只适用于WPS表格文件的结构和格式不变的情况下,如果WPS表格文件的结构发生了变化,以上代码可能会出错。
希望以上方法能够帮助到你!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报