Pythonでxls形式の書き出しライブラリとしてはxlwtパッケージが便利ですが、
xlsx形式に対応させようとした場合はxlsxwriterというパッケージがとても便利です!
使い方を簡単に記しておきます。
まずはパッケージのインストールです。
pip install xlsxwriter
ソースは以下のように書けばOKです。
from xlsxwriter.workbook import Workbook try: import cStringIO as StringIO except ImportError: import StringIO ・ ・ ・ ・ ・ output = StringIO.StringIO() book = Workbook(output) sheet = book.add_worksheet(unicode('シート名', 'utf_8')) # A列は15、B〜E列は20で幅を設定しています。自由に設定してください。 sheet.set_column('A:A', 15) sheet.set_column('B:E', 20) # ヘッダー。第一引数が行、第二引数が列を表しています。 sheet.write(0, 0, unicode('A列のヘッダー', 'utf_8')) sheet.write(0, 1, unicode('B列のヘッダー', 'utf_8')) sheet.write(0, 2, unicode('C列のヘッダー', 'utf_8')) sheet.write(0, 3, unicode('D列のヘッダー', 'utf_8')) sheet.write(0, 4, unicode('E列のヘッダー', 'utf_8')) # ここは取得するデータに合わせて取得してください。 db_data = モデル.objects.all().order_by('id') row_num = 1 for data in db_data: sheet.write(row_num, 0, data.culumn1) sheet.write(row_num, 1, data.culumn2) sheet.write(row_num, 2, data.culumn3) sheet.write(row_num, 3, data.culumn4) sheet.write(row_num, 4, data.culumn5) row_num += 1 book.close() # construct response output.seek(0) response = HttpResponse(output.read(), content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") response['Content-Disposition'] = "attachment; filename=ファイル名.xlsx" return response
- 作者: 関根裕紀,新井正貴
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2019/05/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Python3 + Django2.0入門 - Pythonで作るWebアプリケーション開発入門 - その1(第二版)
- 作者: ナカノヒトシ
- 発売日: 2018/07/12
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/06/09
- メディア: 単行本
- この商品を含むブログを見る