亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
求助一段win32::ole寫入excel的代碼,工作需要
[打印本頁]
作者:
feiying00917
時間:
2013-08-25 23:14
標(biāo)題:
求助一段win32::ole寫入excel的代碼,工作需要
現(xiàn)在要往一個已經(jīng)存在并有數(shù)據(jù)的excel表格中寫入數(shù)據(jù),因為表格已經(jīng)有數(shù)據(jù),所以需要在這些數(shù)據(jù)之后插入數(shù)據(jù),能不能用win32:
le寫段代碼,工作需要,求大俠幫忙!
比如 %work={'name'=>'jack',
'project'=>'venus',
'pid'=>'R0629"
'add'=>'shanghai'}
需要插入到一個excel.xls文件中,使用win32:
le,需要知道excel已經(jīng)存在數(shù)據(jù)的行截至數(shù),然后緊接著下一行插入%work中的值(鍵不需要存入,依次按列插入哈希值,每個cell存入一個值即可),求一段完整代碼,謝謝!
作者:
stanley_tam
時間:
2013-08-26 14:13
偶試試{:3_193:}
#!perl
package Xls;
use strict;
use Win32::OLE;
sub new {
my ($class) = @_;
my $self = +{};
bless $self, $class;
return $self;
}
sub open_excel {
my $self = shift;
my $xl_doc = shift;
my $excel = Win32::OLE->new('Excel.Application') or
die "Excel application is not installed:\n";
my $workbooks;
# make excel visible
$excel->{Visible} = 1;
$workbooks = $excel->Workbooks->Open($xl_doc);
return $workbooks;
}
sub get_worksheet {
my ($self, $workbooks, $num) = @_;
my $sheet = $workbooks->Worksheets($num);
return $sheet;
}
sub get_cell_value {
my ($self, $sheet, $row, $col) = @_;
my $cell_obj = $sheet->Cells($row, $col);
my $value = q{};
if ($cell_obj){
$value = $sheet->Cells($row, $col)->{Value};
}
$value ||= q{};
return $value;
}
sub set_cell_value {
my ($self, $sheet, $row, $col, $value) = @_;
my $cell_obj = $sheet->Cells($row, $col);
$value ||= q{};
if ($cell_obj){
$sheet->Cells($row, $col)->{Value} = $value;
}
}
1;
package main;
use strict;
my $xls_name = '/full/path/to/your/excel.xls';
# parse the first worksheet
my $worksheet_number = 1;
# data to write
my %work = (
name =>'jack',
project=>'venus',
pid =>'R0629',
add =>'shanghai',
);
my $pm = Xls->new();
my $workbooks = $pm->open_excel($xls_name);
my $worksheet = $pm->get_worksheet($workbooks, $worksheet_number);
# frist cell
my $col = 1;
my $row = 1;
# get the cell in column one that has no value within
while (1) {
my $cell_value = $pm->get_cell_value($worksheet, $row, $col);
last if !$cell_value;
$row++;
}
# write data in ordered sequences
for my $key ('name', 'project', 'pid', 'add'){
$pm->set_cell_value($worksheet, $row, $col, $work{$key});
$col++;
}
# close
$workbooks->Close
__END__
復(fù)制代碼
作者:
wenbinsan
時間:
2013-09-05 11:07
回復(fù)
2#
stanley_tam
學(xué)習(xí)了,bless
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2