python3でExcel操作が出来るのかと興味本位で学習中です。
ググって下記のコードを実行してみましたがエラーが出ます。
WinでもMacでも試してみましたが、どちらも同じエラーです。
下記コードを1行ずつ書いて実行する(インタラクティブシェル?)でも試してみましたが、
1行目のimport openpyxl ではエラーがでず、2行目を実行した時にエラーが出ます。
import openpyxl
wb = openpyxl.load_workbook('testxl.xlsx')
wb.get_sheet_names()
を実行すると、下記のようなエラーがでます。
エラー①
Warning (from warnings module):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/openpyxl/reader/worksheet.py", line 319
warn(msg)
UserWarning: Unknown extension is not supported and will be removed
ちなみに3行まとめて実行した場合には、3行目に対して下記のエラーが出ます。
エラー②
wb.get_sheet_names()
DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
そこで3行目をprint (wb.sheetnames)にしたら、エラー②は出なくなりましたが、相変わらずエラー①は出ます・・・。
まだ本やネットで検索しながら探り探りの超初心者ですので、お知恵を頂けたらと思います。
No.1ベストアンサー
- 回答日時:
プログラムをするときは,エラーを読んで解決策を考えるようにしてください。
また,エラー (error) とワーニング (warning) は違うものであることにも注意してください。
warning の場合は,必ずしも間違っているとは限らないです。
エラー① は「サポートされていない拡張子が指定されている」という warning です。
これに関してはこの文章だけでは分からないのですが,
HPを見に行くと読み込みに失敗したときに,この warning が出るようになっているようです。
正しくないファイルを開いたか(存在しない,Excelでないファイルなど),
あるいは「条件付き書式」など特定の機能を含むファイルはサポートされていないようです。
あくまで warning なので,途中まで読み込めているかもしれません。
エラー② は「推奨されていない関数 get_sheet_names が使われた(wb.sheetnames を使え)」
と書かれた warning です。
おそらく正しく動いているので,print(wb.get_sheet_names()) とかやれば,
sheet の名前が表示されるのではないでしょうか。
ただし非推奨 (deprecation) なので,wb.sheetnames を使うようにしてください。
なぜスクリプトとして実行すると最初の warning が出なくなるのかは
よく分かりませんが,正しい excel ファイルを開いているかを確認すれば,
解決するのではないでしょうか。
ご丁寧なご回答、有難うございます。
エラーとワーニングの違いにも留意してまいります。
「正しいexcelファイルを」とのアドバイスでしたので、何度も確認してやり直し等しましたが、やっぱりエラー①(実際にはワーニングですが)の現象は消えません。「条件付き書式」などの件も考慮し、セルに入力のあるsheet1を削除して試してみましたが、やっぱりダメです。
Warning (from warnings module):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/openpyxl/reader/worksheet.py", line 319
warn(msg)
UserWarning: Unknown extension is not supported and will be removed
['Sheet2', 'Sheet3']
↑
シート2と3があるファイルを対象としたので、結果は合っていますがワーニングが出たままなので気になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonでエクセルファイルの列を指定してスライス 3 2022/08/28 17:35
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
python エラー
その他(プログラミング・Web制作)
-
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
-
4
【python】Excelファイルを読み込む際の日付の表示形式を任意にする
その他(プログラミング・Web制作)
-
5
pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください
Ruby
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
8
excel関数式の一部を太字にする
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
マクロで"#N/A"のエラー行を削...
-
お助けください!VBAのファイル...
-
String""から型'Double'への変...
-
VBでSQL文のUPDATE構文を使った...
-
インポート時のエラー「データ...
-
VBAでfunctionを利用しようとし...
-
実行時エラー'-2147467259(8000...
-
Python openpyxlを使用したセル...
-
実行時エラー 438 の解決策をお...
-
VBA データ(特定値)のある最...
-
VB.net 重複チェックがしたいです
-
文字列内で括弧を使うには
-
フランスの生年月日(jj/mm/aaaa)
-
html5 エラー
-
pythonのopenpyxlについて
-
【VBAエラー】Nextに対するFor...
-
error C2664: 'LPCTSTR' に変換...
-
日付書式のString型からData型...
-
Excel VBA 複数ブックシートご...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
ActiveCell.FormulaR1C1の変数
-
ApplicationとWorksheetFunctio...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
フランスの生年月日(jj/mm/aaaa)
-
【マクロ】 IFERROR関数をマク...
おすすめ情報