|
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
use Win32::OLE;
use Win32::OLE::Variant;
# **********************************************************
# オブジェクト作成
# **********************************************************
$Cn = Win32::OLE->new( "ADODB.Connection" );
$Rs = Win32::OLE->new( "ADODB.Recordset" );
# **********************************************************
# ターゲット Excel
# **********************************************************
$Target = "C:\\TEMP\\社員マスタ.xls";
# **********************************************************
# 接続文字列
# **********************************************************
$ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;" .
"Data Source=$Target;" .
"Extended Properties=\"Excel 8.0;\"";
# **********************************************************
# 接続
# **********************************************************
$Cn->Open( $ConnectionString );
# **********************************************************
# レコードセット取得
# **********************************************************
$Query = "select * from [社員マスタ]";
$Rs->Open( $Query, $Cn );
if ( $Rs->State == 0 ) {
print "レコードセットを取得できませんでした";
exit();
}
# **********************************************************
# 出力ファイルオープン
# **********************************************************
open( CSV_FILE,">./社員マスタ.csv" );
# **********************************************************
# タイトル出力
# **********************************************************
$Buffer = "";
for( $i = 0; $i < $Rs->Fields->{Count}; $i++ ) {
if ( $Buffer ne "" ) {
$Buffer .= ",";
}
$Buffer .= $Rs->Fields($i)->{Name};
}
print CSV_FILE "$Buffer\n";
# **********************************************************
# データ出力
# **********************************************************
while ( !($Rs->EOF) ) {
$Buffer = "";
for( $i = 0; $i < $Rs->Fields->{Count}; $i++ ) {
if ( $Buffer ne "" ) {
$Buffer .= ",";
}
$Buffer .= $Rs->Fields($i)->{Value};
}
print CSV_FILE "$Buffer\n";
$Rs->MoveNext();
}
# **********************************************************
# ファイルクローズ
# **********************************************************
close( CSV_FILE );
# **********************************************************
# レコードセットクローズ
# **********************************************************
$Rs->Close();
# **********************************************************
# 接続解除
# **********************************************************
$Cn->Close();
| |