人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

複数のシートがあるExcelファイルの全てのシート名と、各シートを順に選択するPerlスクリプトを教えてください。

●質問者: adan
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

シート名を出力するスクリプトです。エラー処理はばっさり削ってます。

use Win32::OLE;

my $filename = 'd:\Book1.xls'; # 処理対象の Excel book

sub printSheetNames
{
 my $book = shift;
 
 my $i = 0;
 while (my $sheet = $book->Worksheets(++$i)) {
 print $sheet->{Name}, "\n";
 }
}



my $excel = Win32::OLE->GetActiveObject('Excel.Application')
 || Win32::OLE->new('Excel.Application', 'Quit');


my $book = $excel->Workbooks->Open($filename);

printSheetNames($book);

$book->Close();
$excel->Quit();

2 ● じゅぴたー
●100ポイント

複数のシートがあるExcelファイルの全てのシート名と

Excelがインストールされている必要があります。

use strict;
use warnings;
use Win32::OLE;

my $filename = 'hoge.xls'; #Excelファイル名

sub print_sheet_name {
my $book = shift; # Excelワークブック

my $i = 0;
while (my $sheet = $book->Worksheets(++$i)) {
print $sheet->{Name}, "\n";
}
}

my $excel;
eval {
Win32::OLE->GetActiveObject('Excel.Application');
};
if ($@) {
die "Excelが入っていません。 $@";
}

unless (defined $excel) {
$excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Excelが起動できません。";
}

my $book = $excel->Workbooks->Open($filename)
or die Win32::OLE->LastError();
print_sheet_name($book);

$book->Close();

$excel->Quit();
exit;

各シートを順に選択する

この文章だけですと意味が分からないので、もう少し具体的に機能を説明してください。

何を使ってどのように選択したいのですか?

◎質問者からの返答

各シートをタブ区切りのテキストファイルとして保存したいのです。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ