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

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

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

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

Q&A

解決済

1回答

333閲覧

桁区切りの数値を書き出したい

melbo

総合スコア62

Python 3.x

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

0グッド

0クリップ

投稿2019/06/09 04:47

前提・実現したいこと

subsidiaryというディレクトリに5つのエクセルファイルが入っています。
それぞれのファイルから指定したセルの数値を抜き出し、ひとつのファイル(F_report.xlsx)にまとめて表示させたいと思います。

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

新規にファイル(F_report.xlsx)が作成され,それぞれのファイルから数値は抜き出せて表示できるのですが、表示される値に桁区切りがなく、エクセル機能でも桁区切りの操作が効きません。

桁区切りの数値として表示するにはどうすればよいのでしょうか?

エラーメッセージ なし ### 該当のソースコード import glob,xlrd,tablib headers=('売上高','売上原価','売上総利益','販売管理費','営業利益','営業外利益','営業外損失','経常利益') data = [] for file in glob.glob("C:/Users/MH/program/python_lesson/subsidiary/*.xlsx"): book = xlrd.open_workbook(file) s = book.sheet_by_index(0) data.append([s.cell_value(3,2),s.cell_value(5,2),s.cell_value(7,2),s.cell_value(9,2),s.cell_value(11,2),s.cell_value(13,2),s.cell_value(15,2),s.cell_value(17,2)]) out = tablib.Dataset(*data,headers=headers) open('F_report.xlsx','wb').write(out.xlsx) ### 試したこと 表示された数値を他の空白のセルにおいて参照させると桁区切りができるようになるのですが、 表示された箇所で桁区切りの操作をしてもできません。 ### 補足情報(FW/ツールのバージョンなど) python3.7.3 office16(excel)

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

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

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

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

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

guest

回答1

0

ベストアンサー

tablibを使うとセル値は'1234のように先頭に'がついた文字列として書き込まれます。
よって数値書式が無効になってしまいます。
pandasのような別ライブラリで書き込むしかないかと思います。

Python

1import xlrd 2book = xlrd.open_workbook('inp.xlsx') 3s = book.sheet_by_index(0) 4data = [[s.cell_value(0,0)]] 5 6import pandas as pd 7df = pd.DataFrame(data,columns=['col']) 8df.to_excel('out.xlsx', sheet_name='sheet1',index=False)

投稿2019/06/09 08:03

can110

総合スコア38266

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

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

melbo

2019/06/09 09:59

ありがとうございます。 試したところエクセルの桁区切り機能が使えるようになりました。 頂きましたコードで'inp.xlsx'が元からある場合、指定した範囲のセルのみ上書きをして、他のセルのデータは消えないようにする方法はありますでしょうか?
can110

2019/06/09 10:06

具体的なコードは煩雑なので省略しますが pd.read_excelで既存ファイル読み込めるので、読み込んだdataframeに対して処理すればよいかと思います。
melbo

2019/06/09 10:27

すみません。説明を間違えました。 消えてしまうのは'inp.xlsx'ではなく’out.xlsx'でした。 元から'out.xisx'がある場合、出来上がりのシートで指定した範囲以外のセルのデータは消えないようにしたいです。
melbo

2019/06/10 07:46

can110さん pandasを覚えた方がよさそうですので勉強してみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問