【问题标题】:Open Excel file from zipfolder in openpyxl从 openpyxl 中的 zipfolder 打开 Excel 文件
【发布时间】:2017-01-10 11:25:19
【问题描述】:

我正在尝试以下代码。

from zipfile import ZipFile
from openpyxl import load_workbook
from io import BytesIO

zip_path = r"path/to/zipfile.zip"
with ZipFile(zip_path) as myzip:
    with myzip.open(myzip.namelist()[0]) as myfile:
        wb = load_workbook(filename=BytesIO(myfile.read()))
        data_sheet = wb.worksheets[1]
        for row in data_sheet.iter_rows(min_row=3, min_col=3):
            print(row[0].value)

它显示

ValueError: stat: path too long for Windows

这可能吗?

我正在尝试来自 Using openpyxl to read file from memory 的逻辑

【问题讨论】:

  • 您的代码使用 xlrd 而不是 openpyxl。
  • 我把事情搞混了。让我重试。
  • 我已经纠正了这个错误。还有可能吗?
  • 你试过这个代码吗? xlrd 会给出您显示的错误,因为它会尝试使用您作为文件名传递的 BytesIO(使用 file_contents 而不是 xlrd),但粗略查看代码似乎表明 openpyxl 将检测到差异。
  • file_contents 有效。谢谢。

标签: python openpyxl


【解决方案1】:

使用 xlrd 以下代码可以正常工作。

with ZipFile(zip_path) as myzip:
        with myzip.open(myzip.namelist()[0]) as myfile:
            book = xlrd.open_workbook(file_contents=(myfile.read()))
    sh = book.sheet_by_index(0)
    #your code here

【讨论】:

    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多