索引器错误:从CSV fi读取时,必须至少有一个工作表可见

2024-10-01 07:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,如下所示:

first-name,last-name,email-address
Yes,Beth,bethfat@gmail.com
Iran,Dajango,django@me.com
Paul,Walker,info@walker.com
Ray,Johnson,JJRay@gmail.com

我正在尝试将这个CSV文件转换成Excel文件,以便使用Pandas进一步使用。我的方法是从网页上读取数据:

^{pr2}$

并将其写入临时CSV文件:

import pandas as pd

def write_to_xlsx(data_dict, filename):
    tmp_filename = "/tmp/{}.csv".format(rand())
    with open(tmp_filename, "a+") as tmp:
        data = [data_dict["header"]]
        for item in data_dict["userInformation"]:
            item = item.split(",")
            item = ",".join([c.strip() for c in item])
            data.append(item)
        csv_format = "\n".join(data)
        tmp.write(csv_format)
    print tmp_filename
    with pd.ExcelWriter(filename) as ew:
        pd.read_csv(tmp_filename).to_excel(
            ew, index=False, sheet_name=tmp_filename.split(".")[0], encoding="utf-8"
        )
        ew.save()

在编写Excel文件的过程中,我收到一个错误,告诉我:

Traceback (most recent call last):
  File "converter.py", line 70, in <module>
    write_to_xlsx(sorted_data, config["filename"].format(str(datetime.datetime.now()).split(" ")[0]))
  File "converter.py", line 63, in write_to_xlsx
    ew.save()
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/pandas/io/excel.py", line 985, in __exit__
    self.close()
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/pandas/io/excel.py", line 989, in close
    return self.save()
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/pandas/io/excel.py", line 1018, in save
    return self.book.save(self.path)
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/workbook/workbook.py", line 367, in save
    save_workbook(self, filename)
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/writer/excel.py", line 284, in save_workbook
    writer.save(filename)
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/writer/excel.py", line 266, in save
    self.write_data()
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/writer/excel.py", line 95, in write_data
    archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook))
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/writer/workbook.py", line 94, in write_workbook
    active = get_active_sheet(wb)
  File "/Users/admin/bin/python/printers/venv/mailchimper/lib/python2.7/site-packages/openpyxl/writer/workbook.py", line 61, in get_active_sheet
    raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible

是什么导致了这个问题,我如何解决它?在


Tags: inpydatabinvenvadminsavelib