officeで使うperl excel編
DESCRIPTION
talk about Excel in Perl on Windows at YAPC::Asia Tokyo 2012TRANSCRIPT
![Page 1: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/1.jpg)
by risou
YAPC::Asia Tokyo 2012
Officeで使う PerlExcel編
![Page 2: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/2.jpg)
はじめに
• お詫びと訂正
![Page 3: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/3.jpg)
お詫びと訂正
![Page 4: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/4.jpg)
お詫びと訂正
![Page 5: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/5.jpg)
お詫びと訂正
![Page 6: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/6.jpg)
えっ……(これ以上ないハードルの上げ方……!)
![Page 7: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/7.jpg)
はじめに
• お詫びと訂正
• ごめんなさい、そんなに難しい話しません。
![Page 8: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/8.jpg)
お詫びと訂正
![Page 9: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/9.jpg)
お詫びと訂正
![Page 10: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/10.jpg)
はじめに
• お詫びと訂正
• ごめんなさい、そんなに難しい話しません。
• 本トークは、ビギナーを想定しています(強調)
![Page 11: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/11.jpg)
今日のお話
※写真はイメージです
![Page 12: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/12.jpg)
今日のお話
※写真はイメージです
![Page 13: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/13.jpg)
Excel、使ってますか?
• Excel大好きな人
• 業務で使ってる人
• 一切使っていない人
![Page 14: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/14.jpg)
Excel、使ってますか?
• Excel大好きな人
• 業務で使ってる人 ←私はココ
• 一切使っていない人
![Page 15: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/15.jpg)
Excel縛り
• 出退勤時間はWebで登録しているのに残業時間の報告は Excelファイル!
• (なぜか)今まで Excelで管理されてたデータをDBに突っ込みたい!
• 自作ツールのマニュアルを Excelで欲しいと言われたけど、Markdownで書いたものしかない……
※上記例はイメージであり、発表者の実体験に基づくものではありません。
![Page 16: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/16.jpg)
そうだ! スクリプト書いて楽しよう!
![Page 17: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/17.jpg)
Perl on Windows
![Page 18: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/18.jpg)
Windowsに Perlを入れよう
• ActivePerl
• Vanilla Perl
• Strawberry Perl
![Page 19: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/19.jpg)
Windowsに Perlを入れよう
• ActivePerl
• Vanilla Perl
• Strawberry Perl
# Strawberry Perlの開発者、 Adam Kennedy氏のトークは、
2日目の 11: 20から!
![Page 20: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/20.jpg)
Excel in Perl
![Page 21: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/21.jpg)
Excelを扱うモジュール
• Win32::OLE
• SpreadSheet
• SpreadSheet::ParseExcel
• SpreadSheet::WriteExcel
• SpreadSheet::XLSX
• Excel
• Excel::Writer::XLSX
![Page 22: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/22.jpg)
Excelを扱うモジュール
• Win32::OLE
• SpreadSheet
• SpreadSheet::ParseExcel
• SpreadSheet::WriteExcel
• SpreadSheet::XLSX
• Excel
• Excel::Writer::XLSX
![Page 23: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/23.jpg)
Win32::OLEの使い方
![Page 24: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/24.jpg)
お約束( use Win32::OLE)#!/usr/bin/perl
use strict;
use warnings;
use Win32::OLE;
![Page 25: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/25.jpg)
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:\\YAPC\\empty.xlsx“});
# クローズ
$book->Close();
$excel->quit();
![Page 26: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/26.jpg)
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:\\YAPC\\empty.xlsx“});
# クローズ
$book->Close();
$excel->quit();
既に Excelが起動していたら、その Excelを使う
![Page 27: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/27.jpg)
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:\\YAPC\\empty.xlsx“});
# クローズ
$book->Close();
$excel->quit();
起動してる Excelのプロセスがなければ、新規に起動
![Page 28: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/28.jpg)
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:\\YAPC\\empty.xlsx“});
# クローズ
$book->Close();
$excel->quit();
新しいワークブックを作って
名前をつけて保存
![Page 29: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/29.jpg)
基本的な操作
![Page 30: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/30.jpg)
セルに文字を入力する# アクティブなシートのオブジェクトを取得
my $sheet = $book->ActiveSheet;
# セルに文字を入力
$sheet->Range("A1")->{Value} = 'YAPC::Asia TOKYO 2012';
$sheet->Cells(2,1)->{Value} = encode(cp932 => “at 東京大学 ");
![Page 31: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/31.jpg)
セルに文字を入力する# アクティブなシートのオブジェクトを取得
my $sheet = $book->ActiveSheet;
# セルに文字を入力
$sheet->Range("A1")->{Value} = 'YAPC::Asia';
$sheet->Cells(2,1)->{Value} = encode(cp932 => "in 東京 ");
セルの指定方法は2種類
![Page 32: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/32.jpg)
セルの文字を読み取る# セルの文字を読み取る
for (my $i=1;$i<=4;$i++) {
print $sheet->Range("A" . $i)->{Value}, "\n";
}
![Page 33: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/33.jpg)
セルの背景色を指定# 背景色を設定
$sheet->Range("C1:G7")->Interior->{ColorIndex} = 4;
for (my $i=1;$i<=8;$i++) {
$sheet->Cells($i,1)->Interior->{ColorIndex} = $i;
}
![Page 34: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/34.jpg)
セルの背景色を指定# 背景色を設定
$sheet->Range("C1:G7")->Interior->{ColorIndex} = 4;
for (my $i=1;$i<=8;$i++) {
$sheet->Cells($i,1)->Interior->{ColorIndex} = $i;
}
![Page 35: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/35.jpg)
フォントの設定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;
![Page 36: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/36.jpg)
フォントの設定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;
フォントも指定できる
![Page 37: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/37.jpg)
罫線を引く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;
![Page 38: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/38.jpg)
罫線を引く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;
事前にこれを書いておく
![Page 39: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/39.jpg)
罫線を引く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;
セルの下側に線を引く
![Page 40: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/40.jpg)
罫線を引く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;
四辺の他に斜めも引ける
![Page 41: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/41.jpg)
じゃあ、こういう事がしたかったら……?
![Page 42: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/42.jpg)
こんな感じ?# 罫線
$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;
![Page 43: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/43.jpg)
こんな感じ?# 罫線
$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;
違うっぽい……
![Page 44: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/44.jpg)
もしかして……$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;
![Page 45: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/45.jpg)
こうやれば簡単# 罫線
$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;
![Page 46: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/46.jpg)
幅、高さを変える# 幅を変える
$sheet->Columns("A:C")->{ColumnWidth} = 30;
# 高さを変える
$sheet->Rows("1:5")->{RowHeight} = 30;
![Page 47: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/47.jpg)
幅、高さを変える# 幅を変える
$sheet->Columns("A:C")->{ColumnWidth} = 30;
# 高さを変える
$sheet->Rows("1:5")->{RowHeight} = 30;
幅と高さは基準値が違うので、同じ数値を設定しても同じ長さにはならない
![Page 48: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/48.jpg)
こんな感じにすると……# 幅を変える
$sheet->Columns->{ColumnWidth} = 1;
# 高さを変える
$sheet->Rows->{RowHeight} = 9;
![Page 49: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/49.jpg)
これは…… Excel方眼紙!
![Page 50: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/50.jpg)
これは…… Excel方眼紙!
Excel方眼の話は、 LTソン 2日目のminemazさんの LTで聞けます!( 14:30くら
い?)
![Page 51: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/51.jpg)
全て選択する方法# 幅を変える
$sheet->Columns->{ColumnWidth} = 1;
# 高さを変える
$sheet->Rows->{RowHeight} = 9;
# フォントサイズは 9で統一
$sheet->Cells->Font->{Size} = 9;
![Page 52: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/52.jpg)
そういえば Excelマクロも動かせます# マクロ実行
$excel->Run(“macro1”);
# 引数を与えてマクロ実行
$excel->Run(“macro2”, 100);
![Page 53: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/53.jpg)
古いバージョンの Excelフォーマットで保存
![Page 54: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/54.jpg)
保存形式を設定する# ファイルを保存
$book->SaveAs({
Filename => "C:\\YAPC\\empty.xls",
Fileformat => xlExcel8
});
![Page 55: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/55.jpg)
Excel縛り?
• 出退勤時間はWebで登録しているのに残業時間の報告は Excelファイル!
• (なぜか)今まで Excelで管理されてたデータをDBに突っ込みたい!
• 自作ツールのマニュアルを Excelで欲しいと言われたけど、Markdownで書いたものしかない……
![Page 56: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/56.jpg)
楽できそうな気がしてきた!……かな?
![Page 57: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/57.jpg)
![Page 58: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/58.jpg)
他にできること• $sheet->PivotTableWizard(1, $sheet->Range(“A1:E7”), “PivotTable”);
• $book->Charts->Add;
![Page 59: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/59.jpg)
こんなこともできる(別の機会に)# ファイルを保存
$book->SaveAs({
Filename => "C:\\YAPC\\empty.xls",
Fileformat => xlExcel8
});
![Page 60: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/60.jpg)
![Page 61: Officeで使うPerl Excel編](https://reader030.vdocuments.site/reader030/viewer/2022020723/5480ef88b4af9f971a8b4625/html5/thumbnails/61.jpg)