#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; use utf8; use Encode; # Check for valid number of arguments if ((@ARGV < 1) || (@ARGV > 2)) { die("Usage: csv2xls csvfile.txt newfile.xls\n"); }; # Open the Comma Separated Variable file open (CSVFILE, $ARGV[0]) or die "$ARGV[0]: $!"; # Create a new Excel workbook my $workbook = Spreadsheet::WriteExcel->new($ARGV[1]); my $worksheet = $workbook->add_worksheet(); $worksheet->set_column(0, 0, 12); $worksheet->set_column(1, 1, 10); $worksheet->set_column(2, 2, 30); $worksheet->set_column(3, 3, 90); my $uni_font = $workbook->addformat(font => 'Arial Unicode MS'); $uni_font->set_bold(1); $uni_font->set_border_color('black'); $uni_font->set_border(5); $uni_font->set_text_wrap() ; $uni_font->set_align('vjustify'); my $row = 0; my $tempStr=""; while () { $tempStr.=$_; if($_ =~ /\"\n/){ my @fields=split /\,\"/,$tempStr; my $col=0; foreach my $field(@fields){ $field=~s/\"//g; chomp($field); my $location=sprintf("%c%d",($col%26)+0x41,$row+1); $worksheet->write($location, decode('utf8',$field),$uni_font); $col++; } $row++; $tempStr=""; } }
2011年12月25日 星期日
CSV 轉 XLS
這隻程式主要是拿來把CSV轉成XLS格式的檔案,寫工作日誌本來輸出CSV檔好好的,就有人要統一格式,還好對我來說蛋糕一塊,用強大的技術力給他碾過去就好,要什麼格式有什麼格式,別人努力的每週寫報告喬格式,我就用一支per/tk寫的GUI填寫就好。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言