gpt4 book ai didi

python:转换损坏的xls文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:05 24 4
gpt4 key购买 nike

我从 SAP 应用程序下载了几个销售数据集。 SAP 已自动将数据转换为 .XLS 文件。每当我使用 Pandas 库打开它时,我都会收到以下错误:

XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\xff\xfe\r\x00\n\x00\r\x00'

当我使用 MSEXCEL 打开 .XLS 文件时,它会显示一个弹出窗口,提示 文件已损坏或扩展名不受支持,你想继续吗 当我单击"is"时,它显示了正确的数据。当我使用 msexcel 将文件再次保存为 .xls 时,我可以使用 Pandas 来使用它。

因此,我尝试使用 os.rename() 重命名文件,但它不起作用。我尝试打开文件并删除 \xff\xfe\r\x00\n\x00\r\x00,但它仍然有效。

解决方案是打开 MSEXCEL 并手动将文件再次保存为 .xls,有什么方法可以自动执行此操作。请帮忙。

最佳答案

最后,我将损坏的 .xls 转换为正确的 .xls 文件。以下是代码:

# Changing the data types of all strings in the module at once
from __future__ import unicode_literals
# Used to save the file as excel workbook
# Need to install this library
from xlwt import Workbook
# Used to open to corrupt excel file
import io

filename = r'SALEJAN17.xls'
# Opening the file using 'utf-16' encoding
file1 = io.open(filename, "r", encoding="utf-16")
data = file1.readlines()

# Creating a workbook object
xldoc = Workbook()
# Adding a sheet to the workbook object
sheet = xldoc.add_sheet("Sheet1", cell_overwrite_ok=True)
# Iterating and saving the data to sheet
for i, row in enumerate(data):
# Two things are done here
# Removeing the '\n' which comes while reading the file using io.open
# Getting the values after splitting using '\t'
for j, val in enumerate(row.replace('\n', '').split('\t')):
sheet.write(i, j, val)

# Saving the file as an excel file
xldoc.save('myexcel.xls')

import pandas as pd
df = pd.ExcelFile('myexcel.xls').parse('Sheet1')

没有错误。

关于python:转换损坏的xls文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43985768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com