🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1339閲覧

python excelに値を入力

ususio528

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/02 08:18

前提・実現したいこと

pythonを用いてEXCELに数値を入力する練習として
「python excel1.xlsx」という既存のEXCELファイルのA1のマスに2を入力するプログラムを書きたいと思っています。

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

PS C:\Users\narum> & C:/Users/narum/AppData/Local/Microsoft/WindowsApps/python.exe "c:/Users/narum/OneDrive/デスクトップ/my python/python excel test1.py"
Traceback (most recent call last):
File "c:\Users\narum\OneDrive\デスクトップ\my python\python excel test1.py", line 2, in <module>
wb = openpyxl.load_workbook("python excel1.xlsx")
File "C:\Users\narum\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook
reader = ExcelReader(filename, read_only, keep_vba,
File "C:\Users\narum\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\openpyxl\reader\excel.py", line 124, in init
self.archive = _validate_archive(fn)
File "C:\Users\narum\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\openpyxl\reader\excel.py", line 96, in _validate_archive
archive = ZipFile(filename, 'r')
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.752.0_x64__qbz5n2kfra8p0\lib\zipfile.py", line 1239, in init
self.fp = io.open(file, filemode)
FileNotFoundError: [Errno 2] No such file or directory: 'python excel1.xlsx'
PS C:\Users\narum>

該当のソースコード

import openpyxl
wb = openpyxl.load_workbook("python excel1.xlsx")
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "WorkSheetTitle"
ws["A1"] = "2"

wb.save("python excel1.xlsx")

試したこと

openpyxlはインストールされているはずです(コマンドプロンプトにて確認済み)

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

ご教授お願いします。

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

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

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

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

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

tetsunosuke

2021/03/02 09:04

書き込み対象のファイルは存在していますか? また、なぜスペースをファイル名に用いるのでしょうか。特に理由がなく練習ということであれば、ファイル名をpython_excel1.xlsx とか、スペースのないものにして試してみたらどうなりますか?
ususio528

2021/03/02 09:14

書き込み対象のファイルは存在していますか?→はい。 なぜスペースをファイル名に用いるのでしょうか。→その言い方から推測するにファイル名にスペースを用いるのは良くないということですか? もし仮に良くないのだとすると、申し訳ございません、私は初心者ですのでそのことを知りませんでした。教えていただきありがとうございます。 この質問は他のユーザー様の解答によって解決することができました。 ありがとうございました。
tetsunosuke

2021/03/02 09:20

あくまでも参考に このあたりを。 使ってはいけないわけではないですが、特に理由がなければ避けたほうが良いと思います。 まあ Program Filesとかって時点でフォルダ名に使われてるんですけどね。 https://ascii.jp/elem/000/004/030/4030753/
guest

回答1

0

ベストアンサー

現在のディレクトリにファイルがありません。

python

1import os 2print(os.getcwd())

を実行して、ディレクトリを確認してください。
そのディレクトリに"python excel1.xlsx"をコピーしてください。

方法2

絶対パスを指定することです。

エクスプローラーで"python excel1.xlsx"を右クリックして、プロパティを開きます。
全般タブの場所をコピーしましょう。
かりにそれが「C:\Users\myname\test」だったとします。

その場合には

python

1wb = openpyxl.load_workbook("C:\Users\myname\test\python excel1.xlsx")

とすれば動きます。これを絶対パスを指定すると言います。

方法3
「C:\Users\myname\test」にファイルがある場合

python

1import os 2os.chdir("C:\Users\myname\test") 3wb = openpyxl.load_workbook("python excel1.xlsx")

とすることで、現在のディレクトリを「C:\Users\myname\test」にすればファイルを開くことが出来ます。

投稿2021/03/02 09:02

編集2021/03/02 09:37
ppaul

総合スコア24670

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

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

ususio528

2021/03/02 09:11

回答有り難うございます。 その方法で解決することができました。 しかし、これからpythonを使っていく際に、ファイルの読み込みや書き込みをするには、 import os print(os.getcwd()) というコードで読み取られたディレクトリ内にファイルを保存する以外の方法はないのでしょうか?
ppaul

2021/03/02 09:37

回答に追加しましたので、それをご覧ください。
ususio528

2021/03/02 09:37

丁寧にありがとうございます。大変助かりました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問