熊猫无法识别 Excel 文件
Posted
技术标签:
【中文标题】熊猫无法识别 Excel 文件【英文标题】:Pandas not recognizing Excel file 【发布时间】:2021-08-14 08:26:54 【问题描述】:我想对存储在 Excel 文件中的文本数据进行可读性分析。我改编的部分代码如下:
import time, datetime
import pandas as pd
from textstat.textstat import textstat
from openpyxl import load_workbook
ExcelFile = 'Readability.xlsx'
Sheet = 'Raw Data'
Field_ID = 0
book = load_workbook(ExcelFile)
writer = pd.ExcelWriter(ExcelFile, engine='openpyxl')
writer.book = book
df = pd.read_excel(ExcelFile, sheet_name=Sheet)
运行后出现如下错误:
Traceback (most recent call last):
File "\\file\UsersR$\rtf13\Home\Desktop\readability_using_textstat.py", line 19, in <module>
df = pd.read_excel(ExcelFile, sheet_name=Sheet)
File "C:\Python39\lib\site-packages\pandas\util\_decorators.py", line 299, in wrapper
return func(*args, **kwargs)
File "C:\Python39\lib\site-packages\pandas\io\excel\_base.py", line 336, in read_excel
io = ExcelFile(io, storage_options=storage_options, engine=engine)
File "C:\Python39\lib\site-packages\pandas\io\excel\_base.py", line 1071, in __init__
ext = inspect_excel_format(
File "C:\Python39\lib\site-packages\pandas\io\excel\_base.py", line 965, in inspect_excel_format
raise ValueError("File is not a recognized excel file")
ValueError: File is not a recognized excel file
此外,运行代码后 Excel 文件最终会损坏。我正在使用 pandas 1.2.4、openpyxl 3.0.7 并使用 xlrd 1.2.0(因为更高版本不能使用 .xlsx 文件)。欢迎任何建议。谢谢。
【问题讨论】:
【参考方案1】:pd.ExcelWriter
用于写pd.DataFrame
Objets。
df = pd.read_excel(ExcelFile)
with ExcelWriter(ExcelFile , mode='a') as writer:
df.to_excel(writer, sheet_name=Sheet)
更新
试试这样:
df = pd.read_excel(r'<path_to_file>\Readability.xlsx', engine='openpyxl') # UPDATED: pip install openpyxl
with ExcelWriter(ExcelFile , mode='a') as writer:
df.to_excel(writer, sheet_name=Sheet)
在here查看更多信息
【讨论】:
感谢@Anurag Dhadse。不幸的是,我尝试了这个,但仍然收到相同的错误消息。 感谢您的帮助@Anurag Dhadse。将 mode='a' 添加到原始代码中的 writer= 行,即writer = pd.ExcelWriter(ExcelFile, engine='openpyxl', mode='a')
@RFCHCH 如果答案有帮助,请点赞并接受:)以上是关于熊猫无法识别 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章
VBA 有时无法识别通过 SAP GUI 脚本打开的 Excel 文件
JasperReports - 导出到 Excel 时无法识别数值