ADO で Excel

  テキストファイルへ出力



  
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
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();
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ