#!/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)
沒有留言:
張貼留言