【问题标题】:Can't access data in .xlsx file using pandas.read_excel无法使用 pandas.read_excel 访问 .xlsx 文件中的数据
【发布时间】:2021-08-06 16:17:14
【问题描述】:

我正在尝试访问用户可以使用 pandas.read_excelio.BytesIO 提供的 .xlsx 文件中的数据。如果我尝试像这样解析数据:

def parse_contents(contents, filename):
content_type, content_string = contents.split(',')
decoded = base64.b64decode(content_string)
if 'csv' in filename:
    # Assume that the user uploaded a CSV file
    return pd.read_csv(
        io.StringIO(decoded.decode('utf-8')))
elif 'xls' in filename:
    # Assume that the user uploaded an excel file
    return pd.read_excel(io.BytesIO(decoded))

函数parse_contents 返回

   Unnamed: 0                                   Unnamed: 1
0         NaN                                          NaN
1         NaN  Bitte aktivieren Sie Macros um fortzufahren
2         NaN                                          NaN
3         NaN                                          NaN
4         NaN            Please activate Macros to proceed

虽然我认为 xlsx 文件不包含任何宏。有趣的是,对于不同的文件,解析似乎可以找到,我得到了文件中的所有数据。

我需要做什么才能从 Excel 文件中完全删除宏函数?

编辑:

如果我像这样直接在pd.read_excel 中使用filename,问题仍然存在:

def parse_contents(contents, filename):
    if 'csv' in filename:
        # Assume that the user uploaded a CSV file
        return pd.read_csv(filename)
    elif 'xls' in filename:
        # Assume that the user uploaded an excel file
        return pd.read_excel(filename)

【问题讨论】:

  • 是否将文件名传递给 read_excel 和 read_csv 由于某种原因失败?为什么需要字节 IO?
  • 好问题!看起来它没有任何区别,我不记得为什么我实施得如此奇怪。但是,当我直接在文件名上使用 read_excel 时,我仍然遇到同样的问题。
  • @Axel 这是学校作业吗?

标签: python excel pandas vba


【解决方案1】:

我解决了这个问题。该消息实际上非常具有误导性。我只需要指定要读取的 Excel 工作表即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2020-04-07
    • 2016-11-23
    • 2021-12-26
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多