excelファイルをプログラムで出力しよう

17
Excel フフフフフ フフフフフフフフフフフ 2016.04.20 @yuji0602

Upload: yuji0602

Post on 13-Apr-2017

478 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: excelファイルをプログラムで出力しよう

Excelファイルをプログラムで出力しよう2016.04.20 @yuji0602

Page 2: excelファイルをプログラムで出力しよう

Agenda

• やろうと思ったきっかけ• PHPExcelとは• openPyXLとは• プログラムを比較してみよう• まとめ

Page 3: excelファイルをプログラムで出力しよう

やろうと思ったきっかけ

Page 4: excelファイルをプログラムで出力しよう

やろうと思ったきっかけ• 案件でレポートを Excelファイルでダウンロードする必要があった。• 外部スタッフとの共同開発に伴い、開発言語が PHPとなった。• それに伴い、 PHPで Excelファイルを出力する必要があった。• ただ、 PHPだけではなく pythonでも同じことが出来るのがわかったので今回の発表に至る

Page 5: excelファイルをプログラムで出力しよう

PHPExcelとは

Page 6: excelファイルをプログラムで出力しよう

PHPExcelとは• PHPで Excelファイルの新規作成、読み込み、書き込みができる• オープンソースソフトウェア( OSS)• ライセンスは GNU LESSER GENERAL PUBLIC

LICENSE( LGPL)• https://github.com/PHPOffice/PHPExcel

Page 7: excelファイルをプログラムで出力しよう

openPyXLとは

Page 8: excelファイルをプログラムで出力しよう

openPyXLとは• pythonで Excelファイルの新規作成、読み込み、書き込みができる• PHPExcelを基に作られている• こちらも OSS• ライセンスはMIT License• https://bitbucket.org/openpyxl/openpyxl

Page 9: excelファイルをプログラムで出力しよう

プログラムを比較してみよう

Page 10: excelファイルをプログラムで出力しよう

プログラムを比較してみよう• 簡単にプログラムを書いてみました。

• https://github.com/yuji0602/phpExcelStudy

• https://github.com/yuji0602/openPyXLStudy

• バージョンは以下で行いました。• PHP 5.6.12

• python 3.4.3

Page 11: excelファイルをプログラムで出力しよう

プログラムを比較してみよう• PHPExcelは、 composerを利用してインストールします。

$ vim composer.json{ "require": { "phpoffice/phpexcel": "~1.8.0" }}: wq$ composer install

Page 12: excelファイルをプログラムで出力しよう

プログラムを比較してみよう• openPyXLは、 pipを利用してインストールします。

$ pip install openpyxl

Page 13: excelファイルをプログラムで出力しよう

プログラムを比較してみよう• 簡単な使い方

PHPExcel openPyXLワークブック作成 $excel = new PHPExcel(); wb = openpyxl.Workbook()

アクティブなシートを取得 $sheet = $excel->getActiveSheet(); ws = wb.active

シートのタイトル設定 $sheet->setTitle('Test'); ws.title = 'Test'

表示幅の設定 $sheet->getColumnDimension('A')->setWidth(13); ws.column_dimensions['A'].width = 13

セルに文字を出力 $sheet->setCellValue('A1', '=ROW()-1'); ws.cell(row=1, column=1).value = '=ROW()-1'

ファイル保存$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');$writer->save('output.xlsx');

wb.save(filename='output.xlsx')

Page 14: excelファイルをプログラムで出力しよう

プログラムを比較してみよう• その他に以下のことが可能

• セルの色を変更• 条件式の設定• チャートを表示

Page 15: excelファイルをプログラムで出力しよう

まとめ

Page 16: excelファイルをプログラムで出力しよう

まとめ• PHPや pythonで同じように Excelファイルを作成できる• 利用シーンに応じて使い分けすることが出来る• どちらもオープンソースなので不具合とか改善点を見つけたら修正していきたいところ

Page 17: excelファイルをプログラムで出力しよう

おわり