Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the easy-fancybox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the urvanov-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the advanced-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。lancr ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Warning: Cannot modify header information - headers already sent by (output started at /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php:6114) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php:6114) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/feed-rss2.php on line 8
xlwings | 診療放射線技師がPythonをはじめました。 http://radiology-technologist.info 診療放射線技師のPython日記。解析等で使えるコードを作成、アップしていきたいと思っています。その他いろいろ Mon, 02 Jan 2023 13:46:58 +0000 ja hourly 1 https://wordpress.org/?v=6.7 https://i0.wp.com/radiology-technologist.info/wp-content/uploads/2018/09/cropped-logo5.png?fit=32%2C32 xlwings | 診療放射線技師がPythonをはじめました。 http://radiology-technologist.info 32 32 164362728 pythonからエクセルにデータを入力 http://radiology-technologist.info/post-1893 Mon, 02 Jan 2023 13:41:39 +0000 http://radiology-technologist.info/?p=1893 pythonで解析を行ったものをエクセルに出力した […]

The post pythonからエクセルにデータを入力 first appeared on 診療放射線技師がPythonをはじめました。.]]>
pythonで解析を行ったものをエクセルに出力したい事ってありますよね。

今回は、pythonからエクセルにデータ出力をする方法を紹介します。


エクセルを扱うライブラリー xlwings

pythonからエクセルを操作するライブラリー、私は初めpywin32を使ってみたのですが問題が起こったときに調べようとしてもなかなかいい情報が得られない。という事で、今ではxlwingsを使っています。

そこで、今回はxlwingsを紹介します。


広告
デル株式会社

インストール

インストールはいたって簡単

コマンドプロンプトを立ち上げて、

pip install xlwings

もしくは

conda install xlwings

これだけです。仮想環境を構築している方は、仮想環境をアクティベートしてから行ってください。

なお、anacondaのベース環境を使っている方はanacondaに含まれているらしいのでインストールの必要はないようです。


広告
HP Directplus -HP公式オンラインストア-

使い方

使い方はすごくシンプルです。

エクセルを立ち上げる

import xlwings as xw


wb = xw.Book()

この2行だけでエクセルが立ち上がってくれます。


文字の入力

そうしたら、シートを指定し、セルを指定してあげます。

そこにどの値を入力するかを指定してあげるだけです。

import xlwings as xw


wb = xw.Book()
sht = xw.sheets[0]
sht.range("A1").value = 'TEST_A1'
sht.range("C5").value = 'TEST_C5'



リストを入力

続いて、リストを一気に入力してみます。

import xlwings as xw

coment =['slice1', 'slice2', 'slice3', 'slice4', 'slice5', 'slice6']

wb = xw.Book()
sht = xw.sheets[0]
sht.range("A1").value = coment


リストを縦方向に入力

今度は、縦方向に入力してみます。

optionsで指定をします。

import xlwings as xw

coment =['slice1', 'slice2', 'slice3', 'slice4', 'slice5', 'slice6']

wb = xw.Book()
sht = xw.sheets[0]
sht.range("A1").options(transpose=True).value = coment


2次元のリストを入力する場合 横方向に入力

for文を使って入力していくのが簡単です。

その際に、オプションとしてoffsetを用います。

import xlwings as xw

coment =[['slice1_1', 'slice1_2', 'slice1_3', 'slice1_4', 'slice1_5', 'slice1_6'],
         ['slice2_1', 'slice2_2', 'slice2_3', 'slice2_4', 'slice2_5', 'slice2_6'],
         ['slice3_1', 'slice3_2', 'slice3_3', 'slice3_4', 'slice3_5', 'slice3_6'],
         ['slice4_1', 'slice4_2', 'slice4_3', 'slice4_4', 'slice4_5', 'slice4_6'],
         ['slice5_1', 'slice5_2', 'slice5_3', 'slice5_4', 'slice5_5', 'slice5_6']]

wb = xw.Book()
sht = xw.sheets[0]
for i in range(len(coment)):
    sht.range("A1").offset(i, 0).value = coment[i]

offsetは基準セルから以下の様に(縦、横)で指定します。

(-1,-1)(-1,0)(-1,1)
(0,-1)基準セル(0,1)
(1,-1)(1,0)(1,1)


2次元のリストを入力する場合 縦方向に入力

今度は、縦方向に入力していきます。

import xlwings as xw

coment =[['slice1_1', 'slice1_2', 'slice1_3', 'slice1_4', 'slice1_5', 'slice1_6'],
         ['slice2_1', 'slice2_2', 'slice2_3', 'slice2_4', 'slice2_5', 'slice2_6'],
         ['slice3_1', 'slice3_2', 'slice3_3', 'slice3_4', 'slice3_5', 'slice3_6'],
         ['slice4_1', 'slice4_2', 'slice4_3', 'slice4_4', 'slice4_5', 'slice4_6'],
         ['slice5_1', 'slice5_2', 'slice5_3', 'slice5_4', 'slice5_5', 'slice5_6']]

wb = xw.Book()
sht = xw.sheets[0]
for i in range(len(coment)):
    sht.range("A1").options(transpose=True).offset(0, i).value = coment[i]


広告
BTOパソコン・パソコン関連商品がお買い得!パソコン工房のセール

終わり

以上、pythonからエクセルに入力する方法でした。

以下、xlwingのドキュメントです。

https://docs.xlwings.org/ja/latest/index.html


広告
上新電機 パソコン買取サービス
The post pythonからエクセルにデータを入力 first appeared on 診療放射線技師がPythonをはじめました。.]]>
1893