2011年4月26日火曜日

◆CSVファイルをExcelで開く2

PowerShell: ◆CSVファイルをExcelで開くを少しだけ変更してみた。
CSVファイルは文字列項目をダブルコーテーションで囲んでいるケースが多々ある。
そんな場合はその項目だけに文字列属性を指定してあげることで、前回不満だった数値項目が左寄せされてしまう(計算とかも出来なくなる)のを回避できそうだ。

私のあやふやな正規表現での判定文を追加した。
$_ -match '".*"'

001
002
003
004
005
006
007
008
009
010
011

$path = $args[0]
$item = (Get-Content $path -TotalCount 1) -split ','
$item | %{$atts = @()}{if($_ -match '".*"'){$atts += 2}else{$atts += 1}}
$excel = New-Object -Com Excel.Application
$excelBook = $excel.Workbooks.Add()
$excel.Visible = 
$true
$query
 = $excel.ActiveSheet.QueryTables.Add(
"TEXT;$path",$excel.Application.Range('$A$1'))
$query.TextFileCommaDelimiter = 
$true
$query
.TextFileColumnDataTypes = 
$atts
$query
.Refresh($false) | Out-Null

0 件のコメント:

コメントを投稿