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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

477閲覧

ref_obj=chart.Reference(ws, NameError: name 'chart' is not definedを解決したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/11/18 10:35

実現したいこと

Excelファイルを読み込んで縦棒グラフを出力したい

発生している問題・エラーメッセージ

ref_obj=chart.Reference(ws, NameError: name 'chart' is not defined

該当のソースコード

python

1import openpyxl as px 2 3path='C:\よう実\よう実.xlsx' 4wb=px.load_workbook(path) 5ws=wb['Sheet9'] 6 7ref_obj=chart.Reference(ws, 8 min_col=4,min_row=5, 9 max_col=4,max_row=14) 10ser_obj=chart.Series=(ref_obj) 11 12chart_obj=chart.BarChart() 13chart_obj.append(ser_obj) 14 15ws.add_chart(chart, "G20") 16wb.save(path)

試したこと

https://www.self-study-blog.com/dokugaku/python-excel-openpyxl-graph/
こちらのサイトのcodeを利用して行いましたが上記のエラーがでます

補足情報(FW/ツールのバージョンなど)

OS:windows10
VScodeで行っています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そのサイトのコードにバグがありますね。 たぶん。

以下のコードを、最初のimportの後にでも追加してみてください。

python

1import openpyxl.chart as chart

投稿2022/11/18 10:59

TakaiY

総合スコア12741

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/11/18 11:37

import openpyxl.chart as chartを追加したら Traceback (most recent call last): File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 55, in _convert value = expected_type(value) TypeError: int() argument must be a string, a bytes-like object or a real number, not 'Reference' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 55, in _convert value = expected_type(value) File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\chart\series.py", line 140, in __init__ self.idx = idx File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\nested.py", line 35, in __set__ super(Nested, self).__set__(instance, value) File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 67, in __set__ value = _convert(self.expected_type, value) File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 57, in _convert raise TypeError('expected ' + str(expected_type)) TypeError: expected <class 'int'> During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\セミナー資料\graph.py", line 13, in <module> chart_obj.append(ser_obj) File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\chart\_chart.py", line 191, in append self.series = l File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 227, in __set__ setattr(instance, self.alias, value) File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\sequence.py", line 26, in __set__ seq = [_convert(self.expected_type, value) for value in seq] File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\sequence.py", line 26, in <listcomp> seq = [_convert(self.expected_type, value) for value in seq] File "C:\Users\hayas\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\descriptors\base.py", line 57, in _convert raise TypeError('expected ' + str(expected_type)) TypeError: expected <class 'openpyxl.chart.series.Series'> このようなエラー文がでました
TakaiY

2022/11/18 11:57

まあ、いきなりバグがあるような内容ですので、その後もちゃんと動くかはわからないなと思っていたのですが、やはりそうでしたか。 そのサイトの内容に頼るのはやめるか、作者に連絡してみてはいかがでしょうか。
退会済みユーザー

退会済みユーザー

2022/11/18 12:01

分かりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問