質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.37%

ExcelWriterのto_excel()でエラー raise IndexError("At least one sheet must be visible")

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,697

score 2

import pandas as pd
import openpyxl
aaaa = ['AAAAA','AAAA','AAA','AA','A']
ap_01 = [len(qq) for qq in aaaa]
print(ap_01)
iiii = "sososo"
ap_len_pd = pd.DataFrame(ap_01, columns=[iiii])
ap_ww_pd = pd.DataFrame(ap_01, columns=[iiii])
print(ap_len_pd)
saka = ['iwiwi','qoqo']

with pd.ExcelWriter('indas.xlsx', engine="openpyxl") as writer:
    for i in saka:
        ap_len_pd.to_excel(writer, sheet_name=i, index=False)
        ap_ww_pd.to_excel(writer, sheet_name=i, index=False)


上記だと上手くいくのですが、

import pandas as pd
import openpyxl
notation_list = ["A","B","C","D"]

色々あって
exec(f"{ano_mp}_len_pd = pd.DataFrame(ai_02, columns=[ano_mp])")
    print(1)

with pd.ExcelWriter('length_id_summary.xlsx', engine="openpyxl") as writer:
    for ano_pd in anotation_list:
        print(ano_pd)
        exec(f"ai_03 = {ano_pd}_len_pd")
        ai_03.to_excel(writer, sheet_name=ano_pd)


のようなスクリプトだと

raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible

失礼いたしました。
以下エラー全文です

Traceback (most recent call last):
  File "/var/spool/ge/yc066i/job_scripts/17800332", line 54, in <module>
    nounal_len_pd.to_excel(writer, sheet_name='genome')
  File "/home/name/.local/lib/python3.6/site-packages/pandas/core/generic.py", line 2181, in to_excel
    engine=engine,
  File "/home/name/.local/lib/python3.6/site-packages/pandas/io/formats/excel.py", line 719, in write
    f"This sheet is too large! Your sheet size is: {num_rows}, {num_cols} "
ValueError: This sheet is too large! Your sheet size is: 34430947, 1 Max sheet size is: 1048576, 16384

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/spool/ge/yc066i/job_scripts/17800332", line 66, in <module>
    all_no_len_pd.to_excel(writer, sheet_name='all_no')
  File "/home/name/.local/lib/python3.6/site-packages/pandas/io/excel/_base.py", line 777, in __exit__
    self.close()
  File "/home/name/.local/lib/python3.6/site-packages/pandas/io/excel/_base.py", line 781, in close
    return self.save()
  File "/home/name/.local/lib/python3.6/site-packages/pandas/io/excel/_openpyxl.py", line 43, in save
    return self.book.save(self.path)
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/workbook/workbook.py", line 392, in save
    save_workbook(self, filename)
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 293, in save_workbook
    writer.save()
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 275, in save
    self.write_data()
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 89, in write_data
    archive.writestr(ARC_WORKBOOK, writer.write())
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/workbook/_writer.py", line 148, in write
    self.write_views()
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/workbook/_writer.py", line 135, in write_views
    active = get_active_sheet(self.wb)
  File "/home/name/.local/lib/python3.6/site-packages/openpyxl/workbook/_writer.py", line 33, in get_active_sheet
    raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible

というエラーが出て、最初のprint(1)は全て出力されており、pandasのDataFrameまでは大丈夫なのは確認したのですが、
ExcelWriterの部分で、prin(ano_pd)でAは出力されているのですが、それ以降が出力されていない状態です。出来たExcel fileも壊れていて開ません。

途方に暮れています。
お願い申し上げます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • meg_

    2020/05/10 21:57

    エラーは全文掲載してください。(ユーザー名等は隠してもらって構いません)

    キャンセル

  • LanternRains

    2020/05/10 22:23

    失礼いたしました。エラー全文掲載致しました。

    キャンセル

  • LanternRains

    2020/05/10 22:26

    リストが
    ["A","B","C"・・・]ではなく
    ["nounal"・・・]のような状態のスクリプトの結果なので、一部ファイル名は異なっております。

    キャンセル

回答 1

checkベストアンサー

+1

「ValueError: This sheet is too large! Your sheet size is: 34430947, 1 Max sheet size is: 1048576, 16384」とのエラーが出ています。
Saving big xlsx files pandas python Ask Question

行数・列数はExcelの制限のようなので大きすぎるDataFrameはExcel出力できないみたいです。
Excel2016-2010 最大行数・最大列数は?

csv形式等で保存するか、シートを分けるなどの対応が必要でしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/05/10 23:09

    有難うございました。本当に助かりました。原因が分かり幸いです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る