Soumettre la recherche
Mettre en ligne
Officeで使うPerl Excel編
•
Télécharger en tant que PPTX, PDF
•
4 j'aime
•
5,654 vues
risou
Suivre
talk about Excel in Perl on Windows at YAPC::Asia Tokyo 2012
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 61
Télécharger maintenant
Recommandé
Developments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
account inactive
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Shinzo SAITO
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
Jackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSV
Tatu Saloranta
オブジェクト指向っぽい話
オブジェクト指向っぽい話
Tomohiro Shinden
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
yaju88
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
risou
Mídia Kit - O Reacionário
Mídia Kit - O Reacionário
Eric Balbino de Abreu
Recommandé
Developments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
account inactive
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Shinzo SAITO
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
Jackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSV
Tatu Saloranta
オブジェクト指向っぽい話
オブジェクト指向っぽい話
Tomohiro Shinden
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
yaju88
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
risou
Mídia Kit - O Reacionário
Mídia Kit - O Reacionário
Eric Balbino de Abreu
Practica
Practica
luis barrientos
エクストリームエンジニア5
エクストリームエンジニア5
T-arts
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
Load / Frequency balancing Control systems study
Load / Frequency balancing Control systems study
CAL
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
hakoika-itwg
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Youichiro Miyake
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Youichiro Miyake
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
First step of Performance Tuning
First step of Performance Tuning
risou
MI100ロボットでライントレース大会
MI100ロボットでライントレース大会
noanoa07
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
Takashi Kitano
ex-6. Excel でのルックアップ
ex-6. Excel でのルックアップ
kunihikokaneko1
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
kunihikokaneko1
Pythonintro
Pythonintro
Mikio Kubo
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
kunihikokaneko1
Contenu connexe
En vedette
Practica
Practica
luis barrientos
エクストリームエンジニア5
エクストリームエンジニア5
T-arts
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
Load / Frequency balancing Control systems study
Load / Frequency balancing Control systems study
CAL
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
hakoika-itwg
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Youichiro Miyake
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Youichiro Miyake
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
First step of Performance Tuning
First step of Performance Tuning
risou
MI100ロボットでライントレース大会
MI100ロボットでライントレース大会
noanoa07
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
En vedette
(11)
Practica
Practica
エクストリームエンジニア5
エクストリームエンジニア5
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
Load / Frequency balancing Control systems study
Load / Frequency balancing Control systems study
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
First step of Performance Tuning
First step of Performance Tuning
MI100ロボットでライントレース大会
MI100ロボットでライントレース大会
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Similaire à Officeで使うPerl Excel編
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
Takashi Kitano
ex-6. Excel でのルックアップ
ex-6. Excel でのルックアップ
kunihikokaneko1
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
kunihikokaneko1
Pythonintro
Pythonintro
Mikio Kubo
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
kunihikokaneko1
Similaire à Officeで使うPerl Excel編
(7)
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
ex-6. Excel でのルックアップ
ex-6. Excel でのルックアップ
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
Pythonintro
Pythonintro
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
Officeで使うPerl Excel編
1.
Officeで使うPerl
Excel編 by risou YAPC::Asia Tokyo 2012
2.
はじめに • お詫びと訂正
3.
お詫びと訂正
4.
お詫びと訂正
5.
お詫びと訂正
6.
えっ…… (これ以上ないハードルの上げ方……!)
7.
はじめに • お詫びと訂正 •
ごめんなさい、そんなに難しい話しません。
8.
お詫びと訂正
9.
お詫びと訂正
10.
はじめに • お詫びと訂正 •
ごめんなさい、そんなに難しい話しません。 • 本トークは、ビギナーを想定しています(強調)
11.
今日のお話
※写真はイメージです
12.
今日のお話
※写真はイメージです
13.
Excel、使ってますか? • Excel大好きな人 • 業務で使ってる人 •
一切使っていない人
14.
Excel、使ってますか? • Excel大好きな人 • 業務で使ってる人
←私はココ • 一切使っていない人
15.
Excel縛り • 出退勤時間はWebで登録しているのに残業時間の報告
はExcelファイル! • (なぜか)今までExcelで管理されてたデータをDBに 突っ込みたい! • 自作ツールのマニュアルをExcelで欲しいと言われた けど、Markdownで書いたものしかない…… ※上記例はイメージであり、発表者の実体験に基づくものではありません。
16.
そうだ!
スクリプト書いて楽しよう!
17.
Perl on Windows
18.
WindowsにPerlを入れよう • ActivePerl • Vanilla
Perl • Strawberry Perl
19.
WindowsにPerlを入れよう • ActivePerl • Vanilla
Perl • Strawberry Perl #Strawberry Perlの開発者、Adam Kennedy氏のトークは、 2日目の11:20から!
20.
Excel in Perl
21.
Excelを扱うモジュール • Win32::OLE • SpreadSheet
• SpreadSheet::ParseExcel • SpreadSheet::WriteExcel • SpreadSheet::XLSX • Excel • Excel::Writer::XLSX
22.
Excelを扱うモジュール • Win32::OLE • SpreadSheet
• SpreadSheet::ParseExcel • SpreadSheet::WriteExcel • SpreadSheet::XLSX • Excel • Excel::Writer::XLSX
23.
Win32::OLEの使い方
24.
お約束(use Win32::OLE) #!/usr/bin/perl use strict; use
warnings; use Win32::OLE;
25.
Excelを開いて閉じる # Excelオブジェクトを取得 my $excel
= Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # 新規Excelファイル my $book = $excel->Workbooks->add(); # ファイルを保存 $book->SaveAs({Filename => "C:YAPCempty.xlsx“}); # クローズ $book->Close(); $excel->quit();
26.
Excelを開いて閉じる # Excelオブジェクトを取得 my $excel
= Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # 新規Excelファイル 既にExcelが起動していたら、そのExcelを使う my $book = $excel->Workbooks->add(); # ファイルを保存 $book->SaveAs({Filename => "C:YAPCempty.xlsx“}); # クローズ $book->Close(); $excel->quit();
27.
Excelを開いて閉じる # Excelオブジェクトを取得 my $excel
= Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # 新規Excelファイル 起動してるExcelのプロセスがなければ、新規に起動 my $book = $excel->Workbooks->add(); # ファイルを保存 $book->SaveAs({Filename => "C:YAPCempty.xlsx“}); # クローズ $book->Close(); $excel->quit();
28.
Excelを開いて閉じる # Excelオブジェクトを取得 my $excel
= Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # 新規Excelファイル my $book = $excel->Workbooks->add(); 新しいワークブックを作って # ファイルを保存 $book->SaveAs({Filename => "C:YAPCempty.xlsx“}); # クローズ 名前をつけて保存 $book->Close(); $excel->quit();
29.
基本的な操作
30.
セルに文字を入力する # アクティブなシートのオブジェクトを取得 my $sheet
= $book->ActiveSheet; # セルに文字を入力 $sheet->Range("A1")->{Value} = 'YAPC::Asia TOKYO 2012'; $sheet->Cells(2,1)->{Value} = encode(cp932 => “at 東京大学");
31.
セルに文字を入力する # アクティブなシートのオブジェクトを取得 my $sheet
= $book->ActiveSheet; # セルに文字を入力 $sheet->Range("A1")->{Value} = 'YAPC::Asia'; $sheet->Cells(2,1)->{Value} = encode(cp932 => "in 東京"); セルの指定方法は2種類
32.
セルの文字を読み取る # セルの文字を読み取る for (my
$i=1;$i<=4;$i++) { print $sheet->Range("A" . $i)->{Value}, "n"; }
33.
セルの背景色を指定 # 背景色を設定 $sheet->Range("C1:G7")->Interior->{ColorIndex} =
4; for (my $i=1;$i<=8;$i++) { $sheet->Cells($i,1)->Interior->{ColorIndex} = $i; }
34.
セルの背景色を指定 # 背景色を設定 $sheet->Range("C1:G7")->Interior->{ColorIndex} =
4; for (my $i=1;$i<=8;$i++) { $sheet->Cells($i,1)->Interior->{ColorIndex} = $i; }
35.
フォントの設定 for (my $i=1;$i<=5;$i++)
{ $sheet->Cells($i,1)->{Value} = encode(cp932 => "サンプル".$i); } # フォントの設定 $sheet->Range("A1")->Font->{ColorIndex} = 5; $sheet->Range("A2")->Font->{Bold} = 1; $sheet->Range("A3")->Font->{Itaric} = 1; $sheet->Range("A4")->Font->{Underline} = 1; $sheet->Range("A5")->Font->{Size} = 20;
36.
フォントの設定 for (my $i=1;$i<=3;$i++)
{ $sheet->Cells($i,1)->{Value} = encode(cp932 => "サンプル".$i); } # フォントの設定 $sheet->Range("A1")->Font->{ColorIndex} = 5; $sheet->Range("A2")->Font->{Bold} = 1; $sheet->Range("A3")->Font->{Size} = 20; フォントも指定できる
37.
罫線を引く use Win32::OLE::Const 'Microsoft
Excel'; # 罫線 $sheet->Range("B2")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeBottom)->{LineStyle} = 2; $sheet->Range("B4")->Borders(xlEdgeBottom)->{LineStyle} = 3; $sheet->Range("B5")->Borders(xlEdgeBottom)->{LineStyle} = 4; $sheet->Range("B6")->Borders(xlEdgeBottom)->{LineStyle} = 5;
38.
罫線を引く use Win32::OLE::Const 'Microsoft
Excel'; 事前にこれを書いておく # 罫線 $sheet->Range("B2")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeBottom)->{LineStyle} = 2; $sheet->Range("B4")->Borders(xlEdgeBottom)->{LineStyle} = 3; $sheet->Range("B5")->Borders(xlEdgeBottom)->{LineStyle} = 4; $sheet->Range("B6")->Borders(xlEdgeBottom)->{LineStyle} = 5;
39.
罫線を引く use Win32::OLE::Const 'Microsoft
Excel'; # 罫線 $sheet->Range("B2")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeBottom)->{LineStyle} = 2; $sheet->Range("B4")->Borders(xlEdgeBottom)->{LineStyle} = 3; $sheet->Range("B5")->Borders(xlEdgeBottom)->{LineStyle} = 4; $sheet->Range("B6")->Borders(xlEdgeBottom)->{LineStyle} = 5; セルの下側に線を引く
40.
罫線を引く use Win32::OLE::Const 'Microsoft
Excel'; # 罫線 $sheet->Range("B2")->Borders(xlEdgeLeft)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlDiagonalDown)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlDiagonalUp)->{LineStyle} = 1; 四辺の他に斜めも引ける
41.
じゃあ、こういう事がしたかったら……?
42.
こんな感じ? # 罫線 $sheet->Range("B2:G14")->Borders(xlEdgeLeft)->{LineStyle} =
1; $sheet->Range("B2:G14")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeBottom)->{LineStyle} = 1;
43.
こんな感じ? # 罫線 $sheet->Range("B2:G14")->Borders(xlEdgeLeft)->{LineStyle} =
1; $sheet->Range("B2:G14")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeBottom)->{LineStyle} = 1; 違うっぽい……
44.
もしかして…… $sheet->Range("B2")->Borders(xlEdgeLeft)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlEdgeRight)->{LineStyle}
= 1; $sheet->Range("B2")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B2")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeLeft)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B3")->Borders(xlEdgeBottom)->{LineStyle} = 1; : $sheet->Range("G14")->Borders(xlEdgeLeft)->{LineStyle} = 1; $sheet->Range("G14")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("G14")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("G14")->Borders(xlEdgeBottom)->{LineStyle} = 1;
45.
こうやれば簡単 # 罫線 $sheet->Range("B2:G14")->Borders(xlEdgeLeft)->{LineStyle} =
1; $sheet->Range("B2:G14")->Borders(xlEdgeRight)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeTop)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlEdgeBottom)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlInsideHorizontal)->{LineStyle} = 1; $sheet->Range("B2:G14")->Borders(xlInsideVertical)->{LineStyle} = 1;
46.
幅、高さを変える # 幅を変える $sheet->Columns("A:C")->{ColumnWidth} =
30; # 高さを変える $sheet->Rows("1:5")->{RowHeight} = 30;
47.
幅、高さを変える # 幅を変える $sheet->Columns("A:C")->{ColumnWidth} =
30; # 高さを変える $sheet->Rows("1:5")->{RowHeight} = 30; 幅と高さは基準値が違うので、 同じ数値を設定しても同じ長さにはならない
48.
こんな感じにすると…… # 幅を変える $sheet->Columns->{ColumnWidth} =
1; # 高さを変える $sheet->Rows->{RowHeight} = 9;
49.
これは……Excel方眼紙!
50.
これは……Excel方眼紙!
Excel方眼の話は、LTソン2日目の minemazさんのLTで聞けます!(14:30くらい?)
51.
全て選択する方法 # 幅を変える $sheet->Columns->{ColumnWidth} =
1; # 高さを変える $sheet->Rows->{RowHeight} = 9; # フォントサイズは9で統一 $sheet->Cells->Font->{Size} = 9;
52.
そういえばExcelマクロも動かせます # マクロ実行 $excel->Run(“macro1”); # 引数を与えてマクロ実行 $excel->Run(“macro2”,
100);
53.
古いバージョンのExcelフォーマットで保存
54.
保存形式を設定する # ファイルを保存 $book->SaveAs({
Filename => "C:YAPCempty.xls", Fileformat => xlExcel8 });
55.
Excel縛り? • 出退勤時間はWebで登録しているのに残業時間の報告
はExcelファイル! • (なぜか)今までExcelで管理されてたデータをDBに 突っ込みたい! • 自作ツールのマニュアルをExcelで欲しいと言われた けど、Markdownで書いたものしかない……
56.
楽できそうな気がしてきた!……かな?
57.
58.
他にできること •
$sheet->PivotTableWizard(1, $sheet->Range(“A1:E7”), “PivotTable”); • $book->Charts->Add;
59.
こんなこともできる(別の機会に) # ファイルを保存 $book->SaveAs({
Filename => "C:YAPCempty.xls", Fileformat => xlExcel8 });
Télécharger maintenant