
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
ACCESSで値を代入できないとは?
-
マクロで"#N/A"のエラー行を削...
-
ApplicationとWorksheetFunctio...
-
続・PerlのメッセージBOXについて
-
VBA データ(特定値)のある最...
-
【VB.NET】 パワポ操作を非表示で
-
IISの仮想ディレクトリ作成がわ...
-
E2206のエラーについて
-
"ソ"の謎
-
レコード登録時に「演算子があ...
-
VB6とVB.NETでNullの扱いが違う?
-
PostMessageがERROR_ALREADY_EX...
-
【VBAエラー】Nextに対するFor...
-
データベース操作時エラーについて
-
マクロOn Error GoTo ErrLabel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報