SlideShare a Scribd company logo
1 of 8
WriteExcel について
Perl編

m3dev ASA
アジェンダ


WriteExcel 概要



ソースサンプル



出力サンプル
WriteExcel 概要1


PerlでEXCELファイルを作ります



見た目を結構いじれます



Ruby版もありますが今回は触ってません



なぜこれを選んだのか
→既に環境があったから
WriteExcel 概要2


作者:John McNamara

本家のサイト
 http://search.cpan.org/dist/Spreadshe
et-WriteExcel/




日本語化されている説明サイト(ちょっと古い)



http://homepage3.nifty.com/hippo2000
/perltips/Spreadsheet/WriteExcel.htm
WriteExcel 概要3
出来ること
1. フォント(色や強調など)変更
2. セル幅や背景色変更
3. グラフ作成
4. グループ化
5. 複数シート作成
6. 罫線各種
7. ウィンドウ枠の固定

WriteExcel 概要4


出来ないこと

1. 数式に合わせた結果で条件書式を行う場合などが
うまくいかない
↓
データセットするときに書式指定することで回避
2. 複合型グラフにより作れないものがある
3. 色を作成することはできるが、パレットの変更に
なるので部分的に他EXCELファイルにコピペす
ると色がおかしくなる
その他似たツール


適当に検索して出てきたものを列挙
※どれも全く試していません。



PHPExcel
spreadsheet gem
NPOI
OpenXML SDK
ExcelPackage
EPPlus
ExcelCreater








ソースサンプル
use Spreadsheet::WriteExcel;
# 新しいExcelワークブックの作成
my $workbook = Spreadsheet::WriteExcel->new("perl.xls");
# ワークシートの追加
$worksheet = $workbook->addworksheet();
# 書式の追加と定義
そんなに困らず書けます
$format = $workbook->addformat();
# 書式の追加
$format->set_bold();
$format->set_color('red');
$format->set_align('center');
# 行、列の書き方で書式付とそうでない文字列を出力
$col = $row = 0;
$worksheet->write($row, $col, "Hi Excel!", $format);
$worksheet->write(1, $col, "Hi Excel!");
# A1という書き方を使って、数字と式を出力
$worksheet->write('A3', 1.2345);
$worksheet->write('A4', '=SIN(PI()/4)');

More Related Content

Viewers also liked

Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection systemChris Birchall
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIChris Birchall
 
3分 gem クッキング
3分 gem クッキング3分 gem クッキング
3分 gem クッキングKenji Mori
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsKazuhiro Sera
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3devKazuhiro Sera
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaChris Birchall
 
問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?Takashi Takebayashi
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionChris Birchall
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatlingChris Birchall
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0Kazuhiro Sera
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devKazuhiro Sera
 

Viewers also liked (12)

Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection system
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming API
 
3分 gem クッキング
3分 gem クッキング3分 gem クッキング
3分 gem クッキング
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3dev
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in Scala
 
問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by Abstraction
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatling
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 

Similar to Writeexcelについて

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題Kazushi Kamegawa
 
ES6,7で書ける JavaScript
ES6,7で書ける JavaScriptES6,7で書ける JavaScript
ES6,7で書ける JavaScriptShin Sekaryo
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)Takaichi Ito
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方Soudai Sone
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理Takuya Tsuchida
 
Excel vba
Excel vbaExcel vba
Excel vbakeki3
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 

Similar to Writeexcelについて (11)

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題
 
ES6,7で書ける JavaScript
ES6,7で書ける JavaScriptES6,7で書ける JavaScript
ES6,7で書ける JavaScript
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
 
Excel vba
Excel vbaExcel vba
Excel vba
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 

Writeexcelについて