用Perl读写Excel文件
最近写一个小脚本,读取Excel文件中的内容,经过处理后,生成新格式的Excel文件,将一些用法着一个小小的总结。
读取Excel文件中的内容,模块Spreadsheet::ParseExcel的一些常见用法
得到一个workbook对象:
my $excel=new Spreadsheet::ParseExcel;
my $fmt=Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map=>"cp936");
my $workbook=$excel->Parse($file,$fmt);
得到excel文件中的表格数目:
$sheet_nums=$workbook->worksheet_count();
得到一个表格对象(这里的$sheet_num是表格的索引,从0开始计数):
$sheet=$workbook->worksheet($sheet_num);
获取表名:
my $sheetname=$sheet->get_name();
转换编码
$sheetname=decode('utf-8',$sheetname);
得到最大、最小行序(不是很准)
my ($row_min, $row_max)=$sheet->row_range();
取单元格的值,在取之前最好能判断一下:
if($sheet->get_cell($row_num,$col_num)){
my $code=$sheet->{Cells}[$row_num][$col_num]->Value();
}
生成Excel文件,模块Spreadsheet::WriteExcel的一些常见用法
定义一个workbook对象
my $workbook = Spreadsheet::WriteExcel->new($filename);
定制一种格式
my $fmt4= $workbook->add_format(
border => 1,
bold => 1,
color => 'black',
size=> 11,);
border样式为1,具体的样式可以从方档中查询
bold 加粗
color字体颜色
size字体的大小
也可以这样设置格式:
my $fmt_OK= $workbook->add_format();
$fmt_OK->set_bg_color('green');
$fmt_OK->set_border_color('black');
$fmt_OK->set_border(1);
添加一个表格,注意中文表名,要设置编码,gbk或utf-8,自己试一试,我也搞不明白:
$sheetname=decode('gbk',$sheetname);
my $sheet=$workbook->add_worksheet($sheetname);
在某个单元格中填写数据(注意,对于写过的表格,不要再使用write,这样生成的excel文件打开时会报错),给定行、列、内容、格式,其中格式可能省略:
$sheet->write($row,1,$records[0],$fmt);
设置列宽,第3列至第34列列宽为2,(这里的参数是列的索引,索引是从0开始的):
$sheet->set_column(2,33,2);
设置行高($row为行索引):
$sheet->set_row($row,13.5);
关于合并单元格的内容,(参数分别为左上角行序、左上角列序、右下角的行序、右下角列序、内容、格式)再次提醒,不要在同一个格中重复写文,不然生成的excel表格打开时报错:
$sheet->merge_range($row,0,$row+1,1,decode('utf-8',"日期"),$fmt);
如果有其他们需求可以在模块的文档中搜索"merge",文档中有示例。

发布于 2012-05-13 04:56:25
Аптека: мужской форум сиалис, слушать песню мамонтёнка, левитра купить 5 мг, сиалис купить спб, сколько стоит сиалис, левитра бренд, сиалис противопоказания, виагра левитра сравнение, левитра в украине, сиалис софт, виагра таблетки цена. Сайт http://vita-apteka.ru/

发布于 2012-05-02 07:32:30
Аптека: сиалис отзывы форум, виагра таблетки действие, левитра описание, сиалис спб, левитра отзывы форум, сиалис почтой, сиалис виагра отзывы, не помог сиалис, краснодар сиалис, продам сиалис, слушать песню мамонтёнка.


Renatafe
发布于 2012-05-17 17:58:16
Мы предлагаем: сервер под хрумер, xrumer full, xrumer warez, скачать бесплатно xrumer crack, xrumer рабочий. Программа XRumer (как пользоваться хрумером) - предназначена для массовой рассылки в форумы, гостевые книги, блоги, доски, каталоги и т. д. Сайт http://xrumer8.ru/
回复评论