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

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

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

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Q&A

解決済

1回答

4853閲覧

openpyxlでオートフィルを実現する方法

gomagoma1122

総合スコア4

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

0グッド

0クリップ

投稿2021/10/25 01:46

前提・実現したいこと

python初心者です。
jupyter lab をwindows環境で使っています。

Pythonでデータ抽出した結果をExcelで保存後、そのExcelファイルを
openpyxlで開いて、c2セルに=a2-b2 の数式を入れることまでは完了しましたが、
Excelでいうところのオートフィルのやり方が分からないので、手動で一番下の行まで
数式をコピペしてファイルを仕上げています。

このオートフィルを実現する方法を教えて頂けないでしょうか。ネットで検索は
かけてみたのですが、いまいち理解が出来ませんでした。

どうぞ宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

openpyxlでオートフィルができるかどうかよく分からないのですが (ドキュメントをざっと見た感じ、該当する機能は無さそうでした)、直接セルに記入すればいいかと思います。
例えは、こんなプログラムでどうでしょうか。

python

1import openpyxl 2 3book = openpyxl.load_workbook('Test.xlsx') 4sheet = book.worksheets[0] 5 6for i in range(10): 7 sheet.cell(row=2+i, column=3).value = f'=A{2+i}-B{2+i}' 8 9book.save('Test.xlsx') 10book.close()

投稿2021/10/25 08:20

Bull

総合スコア986

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

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

gomagoma1122

2021/10/25 10:50

Bullさん、大変感謝です。無事に出来ました!! range関数で最終行を取得して、列に繰り返し数式を入れることが出来ました。 10列くらい、if関数など複雑な数式を入れる予定なので、基本的には同じ記述をしていけば 良いでしょうか? もし他にも方法があれば教えて頂けると助かります。 import openpyxl book = openpyxl.load_workbook('Test.xlsx') sheet = book.worksheets[0] maxrow = sheet.max_row for i in range(1,maxrow): sheet.cell(row=1+i, column=3).value = f'=A{1+i}-B{1+i}' sheet.cell(row=1+i, column=5).value = f'=IF(d{1+i}="エラー",a{1+i},"")' book.save('Test.xlsx') book.close() print('ok')
Bull

2021/10/25 11:29

この方法では複雑な関数でも、文字列として書込むことになります。 他の方法はちょっと思いつかないです。 結果として、セルに思い通りの数式が書込まれていればいいのではないでしょうか。
gomagoma1122

2021/11/01 03:12

返事が遅くなり申し訳ありません。確かに目的は達成できたでの、この方法でやることにします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問