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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1458閲覧

Python リストをExcelに出力 改行

absjkj

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/05/24 03:32

編集2022/05/24 09:09

python初心者です.

pythonで作成したリストの値をExcelへ出力したいです.

その際,開始列と開始行を指定して,横(行)から値を埋めていって,3列分埋めたら改行して,次の行も3列埋めたら改行して,リストに値のある限り出力し続けるというものを作成したいです.

リスト内のデータ数は30個あり,それをExcelに行から埋めていって3列10行といった感じに出力したいと思っています.

出力されたイメージとしては,画像のような感じで出力したいです.
イメージ説明

どのように作成すればいいか全くわからないので,何かアドバイスやサンプルコードなど,いただけると幸いです.

以下のコードで出力すると,横一直線に出力されてしまいました.
何か工夫が必要なんでしょうが,それが全く分からないという状況でございます.

for l in range(0, len(ave_list)): worksheet2.cell(1, l+1, value = ave_list[l]) コード

イメージ説明

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

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

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

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

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

1T2R3M4

2022/05/24 07:54

worksheet2.cell()で1つずつデータを書き込んで 画像の様に出力することは出来ますか。
absjkj

2022/05/24 08:21

返信ありがとうございます. はい,一番下の画像のような出力まではできました.
1T2R3M4

2022/05/24 08:26

そうではなくて、9個のデータを9回のworksheet2.cell()で 上の図の様に3x3のセルに書きこむことはできますか。 ということです。
absjkj

2022/05/24 08:29

申し訳ありません.質問の意味をはき違えておりました. はい,それはできます.
1T2R3M4

2022/05/24 09:00

ならばその時のRowとColumnの法則を見つけて ループ変数のlからそれぞれ計算すればいいのでは。
absjkj

2022/05/24 09:08

リストに入っているデータの数が9個ではなくて,30個ですができるのでしょうか. リスト内30個のデータを行から埋めていって3列10行に出力したいです. もしよろしかったら,サンプルコードをよろしくお願いいたします.
1T2R3M4

2022/05/24 09:15

Row(R)、 Column(C)として9個の場合のRとCの遷移を 以下の様に書いてみてください。 R-C 1-1 1-2 1-3 2-1 : :
absjkj

2022/05/24 09:20

1-1,1-2,1-3 2-1,2-2,2-3 3-1,3-2,3-3 です. お手数おかけいたします.
1T2R3M4

2022/05/24 09:28

Row=l//3+1 Column=l%3+1 でどうでしょうか。
absjkj

2022/05/25 02:01

回答ありがとうございます. 以下のようなエラーが出てきてしまいました. ValueError: 1.3333333333333333 is not a valid row number
absjkj

2022/05/25 02:43

申し訳ありません.お手数おかけいたします. これまで私の質問を解決しようと,取り組んでいただきありがとうございました. 解決することができました. これまでのご協力感謝いたします. 私は,最近Pythonを始めたばかりで,これからもまだまだ分からないことが増えてくると思います. その時はまたご協力いただけると幸いです. この場を借りて,感謝申し上げます.
guest

回答2

0

ベストアンサー

python

1import random 2from pprint import pprint 3 4# generate test data 5N = 30 6ave_list = [random.random() * 100 for _ in range(N)] 7 8# reshape 9M = 3 10ave_list = [ave_list[i:i+M] for i in range(0, len(ave_list), M)] 11pprint(ave_list) 12 13# save to a file 14from openpyxl import Workbook 15 16wb = Workbook() 17worksheet2 = wb.active 18for r, row in enumerate(ave_list): 19 for c, col in enumerate(row, start=5): 20 worksheet2.cell(r+1, c, value = col) 21 22wb.save('output.xlsx')

イメージ説明

投稿2022/05/24 14:18

編集2022/05/24 14:23
melian

総合スコア19703

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

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

absjkj

2022/05/25 02:38

回答ありがとうございます. 私の拙い表現の質問に対して,意図を理解していただき本当にありがとうございます. 私の希望通り出力することができました. 心より,感謝申し上げます.
guest

0

Excelに読み込ませるファイルを作る、ってのであれば、そういう形式でCSVファイルを作ればいいです
コンマ区切りで数値を並べていけば済みます

投稿2022/05/24 03:47

y_waiwai

総合スコア87747

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

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

absjkj

2022/05/24 04:16

貴重なお時間をいただいて,回答ありがとうございます. 私の文章が足らず,申し訳ありません. 既存のエクセルファイルにPythonで得た値を出力したいというものでございます. もしよろしかったら,ご回答のほどよろしくお願いいたします.
y_waiwai

2022/05/24 04:54

python エクセル操作、でぐぐれば解説記事がたくさん出てきますんで、それを一通り読んでみては
Zuishin

2022/05/24 05:10

また初心者を煽ってる。
absjkj

2022/05/24 05:18

申し訳ありません. 一通り調べさせていただいたうえで,質問させていただきました.
Zuishin

2022/05/24 05:23 編集

この回答者は何も知らないのに知ったような顔をして「ググれ」と回答するのが趣味なので、ほっといていいです。 知識もないし自分でググって確かめたわけでもないので、そのキーワードで調べても解決しないことが多く、よく指摘を受けています。 他の回答者を待ちましょう。
Zuishin

2022/05/24 05:27

しかしこの質問も低評価が多いです。 低評価の多い質問は回答者も敬遠しがちなので、それを減らすよう質問を編集することをおすすめします。 どのようにしたら低評価が減るのかは、ヘルプを参照してください。
absjkj

2022/05/24 06:02

ご指摘のほど,ありがとうございます. 至らない点が多く,改善できるよう心がけていきたいと思います.
Zuishin

2022/05/24 06:19

詳しい回答者が避けて通る低評価質問を狙って回答する人もいますので、嘘やアンチパターンや普通やらないような回答で良ければ「心がけ」だけでいいと思います。
absjkj

2022/05/24 06:24

ご丁寧にありがとうございます. ご指摘いただいたことを心がけて精進いたします.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問