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

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

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

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

Q&A

解決済

2回答

6458閲覧

pythonで取得した値を、既存のエクセルファイルの既存のシートの特定のセルへ入力したい

youri0326

総合スコア22

Python

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

0グッド

2クリップ

投稿2018/12/20 06:11

pythonを介して取得した値を、エクセルの既存のファイルの既存のシートの特定のセルへ書き込みしたいと思ってます。
新規ファイルとして作成することは可能なのですが、既存のデータを残したまま、既存のシートの列に代入しようとすると上手く起動しません。

解決する方法が存在するのか、また解決方法があるのならどのように解決すればよいのか、ご教示いただけますと幸いです。

#試したこと1
import openpyxl as px

wb = px.load_workbook('Downloads/ファイル名.xlsx‪')
ws = wb.get_sheet_by_name('Sheetname')
sheet = ws.active

sheet['E1'].value = 123

wb.save('Downloads/ファイル名.xlsx‪')

#エラー内容1
FileNotFoundError: [Errno 2] No such file or directory: 'Downloads/ファイル名.xlsx'

#試したこと2
import openpyxl as px
import xlrd

book = px.Workbook('Downloads/ファイル名.xlsx‪')
wb = book.sheet_by_name('Sheet1')
sheet = wb.active

sheet["D2"].value = "test"
sheet["E1"].value = 5

book.save("Downloads/ファイル名.xlsx")

#エラー内容2
AttributeError: 'Workbook' object has no attribute 'sheet_by_name'

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

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

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

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

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

guest

回答2

0

ベストアンサー

試したこと1のファイル名Downloads/ファイル名.xlsxには、末尾に不要な文字「U+202A」が含まれています。そのためにファイルが存在しないと誤認識されています。

試したこと2については存在しない属性activeを呼んでいます。
以下のようなコードで動作するはずです。

Python

1import openpyxl as px 2wb = px.load_workbook('temp.xlsx') 3 4#ws = wb.get_sheet_by_name('Sheet1') # DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]). 5#sheet = ws.active # AttributeError: 'Worksheet' object has no attribute 'active' 6#sheet['E1'].value = 123 7ws = wb['Sheet1'].value = 123 8wb.save('temp.xlsx')

投稿2018/12/20 06:46

can110

総合スコア38266

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

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

youri0326

2018/12/24 06:12

返信遅れて申し訳ございません。お陰様で機能しました。
guest

0

ファイル名等は適宜読み替えてください。

Python

1import openpyxl as px 2 3wb = px.load_workbook("test.xlsx") 4sheet = wb["Sheet1"] 5sheet["D2"] = "test" 6sheet["E1"] = 5 7wb.save("test.xlsx")

投稿2018/12/20 06:37

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

youri0326

2018/12/24 06:12

返信遅れて申し訳ございません。お陰様で機能しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問