LoginSignup
8

More than 5 years have passed since last update.

pythonでエクセルを書いてみるよ(xlsxwriter)

Posted at

人に見せるときはExcelになること多いので、pythonのxlsxwriterを使ってできるところは自動化していこうという試み。

xlswriter

importとかの初期宣言

import xlsxwriter

book = xlsxwriter.Workbook('test.xlsx')

Workbookで作成するファイルを指定する。基本的のこのbookをつかった変更がtest.xlsxに書き込まれていきます。

ワークシートの追加

sheet = book.add_worksheet('NAME_OF_SHEET')

add_worksheetでシートの追加。引数に名前を入れてなまえを指定。名前がない場合はsheet1,sheet2,sheet3,..とデフォルトが入って行く。

セルへの記述

line=0
row=0

sheet.write(line, row, 'test')

sheet.writeメソッドをつかってセルに書き込むことができる。 行、列番号を指定して、そのセルに指定した文字列を入れる。 上の場合、0行0列に文字列'test'を書き込む。

セルのフォーマットの変更

format=book.add_format({'bold': True, 'font_color': 'black', 'font_size':'14', 'bg_color':'#FFB900'})

sheet.write(0, 0, 'test', format)

bookのadd_formatを使うと、セルの書式設定ができる。
add_formatから返却されたオブジェクトを、writeの第4引数にして渡すとその書式で記入してくれる。
上の例はフォントカラーがブラック、サイズが14px、セルの背景がオレンジ、文字のBoldをする。

セルの幅を指定する

sheet.set_column(0,0, 20)

セルの幅を指定します。行、列の指定ではなくて、列の長さの指定になる。0,0であればA, 1,3であればB~Dの位置の幅が指定できる。

サンプル

import xlsxwriter

#test.xlsxを作成
book = xlsxwriter.Workbook('test.xlsx')
#段落用のフォーマット
titleformat=book.add_format({'bold': True, 'font_color': 'black', 'font_size':'14', 'bg_color':'#FFB900'})
#通常の文字用フォーマット
textformat=book.add_format({'bold': False, 'font_size':'14'})

#ワークシートテスト用を作成
sheet = book.add_worksheet('テスト用')

sheet.write(1, 0, 'xlxswriteのテスト', titleformat)
sheet.set_column(1, 0, 50)
sheet.write(2, 0, 'こんにちはこんにちは', textformat)

sheet.write(4, 0, 'サーバ一覧とか', titleformat)
sheet.set_column(3, 0, 50)
sheet.write(5, 0, '192.168.0.1', textformat)
sheet.write(6, 0, '192.168.0.2', textformat)
sheet.write(7, 0, '192.168.0.3', textformat)
sheet.write(8, 0, '192.168.0.4', textformat)

sheet.write(10, 0, 'URLとか', titleformat)
#urlの入力
sheet.write_url(11, 0, 'https://www.yahoo.co.jp', string='Yahoo')
sheet.write_url(12, 0, 'https://google.co.jp')
sheet.write_url(13,0, 'https://xlsxwriter.readthedocs.io/index.html')

book.close()

xlsxwriter screenshot

こんな感じになります。

公式のexampleに結構な量が書いてあるので、そのまま使えそう。

Examples — XlsxWriter Documentation

基本操作はだいたいこんな感じで、グラフ、テキストボックスも使えるみたいなので、使うときになったら書いていこう

データをtsv、csvにしてエクセルで読み込んでコピーとかがダルかったので積極的に使っていきたい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8