问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在perl中加载关于Excel的模块?

发布网友 发布时间:2022-04-27 04:05

我来回答

3个回答

热心网友 时间:2022-06-25 22:25

下面是一个简单的例子,先要安装几个模块,按照提示安装吧。
#!/usr/bin/perl -w
## Program : xls.pl
## Version : 1.0
## Date : 2010.7.8
##------------------------------------------------------------------------------

use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtUnicode;
use Spreadsheet::WriteExcel;

#---------------------------写EXCEL-------------------------------------------------------

my $output= File::Spec->catfile('Copy.xls');
my $Map=new Unicode::Map("GB2312");
my $workbook=Spreadsheet::WriteExcel->new("$output");
my $out_worksheet=$workbook->add_worksheet("table");
$format = $workbook->add_format(align=>'center',bg_color=>'cyan',border=> 1);

#---------------------------读取EXCEL-------------------------------------------------------

$filename="input.xls";
my $oExcel = new Spreadsheet::ParseExcel;
my $code = "gb2312";
my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map =>$code);
my $oBook = $oExcel->Parse( $filename, $oFmtJ );

my $sheet=$oBook->{Worksheet}[0];
#$sheet_name=$sheet->{Name};

my ( $minRow, $maxRow ) = $sheet->row_range();
my ( $minCol, $maxCol ) = $sheet->col_range();

my @rowdata;
my $r_num=0;

for $r(0..$maxRow){
@row_data=getSingleRow($r,$maxCol,$sheet);
#print "@row_data"."\n";
my $i=0;
foreach(@row_data){
print $_;
$out_worksheet->write_unicode($r,$i++,$Map->to_unicode($_),$format);
}
}

sub getSingleRow{
my($row,$maxCol,$sheet)=@_;
my @row_all;
foreach my $col ( 0 .. $maxCol ){
my $cell = $sheet->get_cell( $row, $col );
next unless $cell;
$data=$cell->value;
push(@row_all,$data);
}
return @row_all;
}

热心网友 时间:2022-06-25 22:26

能用 Win32::OLE 模块来检索来自 Windows Excel 文件的数据.
找到的一个例子:

use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # die on errors...
# get already active Excel application or open new
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
# open Excel file
my $Book = $Excel->Workbooks->Open("c:/komodo projects/test.xls");
# You can dynamically obtain the number of worksheets, rows, and columns
# through the Excel OLE interface. Excel's Visual Basic Editor has more
# information on the Excel OLE interface. Here we just use the first
# worksheet, rows 1 through 4 and columns 1 through 3.
# select worksheet number 1 (you can also select a worksheet by name)
my $Sheet = $Book->Worksheets(1);
foreach my $row (1..4)
{
foreach my $col (1..3)
{
# skip empty cells
next unless defined $Sheet->Cells($row,$col)->{'Value'};
# print out the contents of a cell
printf "At ($row, $col) the value is %s and the formula is %s\n",
$Sheet->Cells($row,$col)->{'Value'},
$Sheet->Cells($row,$col)->{'Formula'};
}
}
# clean up after ourselves
$Book->Close;

热心网友 时间:2022-06-25 22:26

use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # die on errors...
# get already active Excel application or open new
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
my $filename = <STDIN>;
chop $filename;
my $Book = $Excel->Workbooks->Open("$filename");
my $Sheet = $Book->Worksheets(2);
open(A,">test.txt");
my $val3 = 0;
my $val4 = 0;
my $val5 = 0;
my $val7 = 0;
my $val8 = 0;
my $val9 = 0;
my $val10 = 0;
my $val11 = 0;
my $print_flag = 1;
my $print_flag1 = 0;
my $spa = "[\\t ]+";
my $ent = "[\\n]";
my @data1 = "";
my @data2 = "";
my $dat1 = 0;
my $dat2 = 0;
foreach my $row (4..200)
{
foreach my $col (3..5,8..14)
{
...
};
};
perl怎样读入一个xlsx格式的表格文件,再满足其他要求。

一般会用到以下模块,OpenOffice: Spreadsheet::ReadSXC Microsoft Excel:Spreadsheet::ParseExcel 或 Spreadsheet::XLSX 如果你嫌麻烦,就用 Spreadsheet::Read 这个模块 具体用法参考http://search.cpan.org/~hmbrand/Spreadsheet-Read-0.46/Read.pm 参考资料:http://search.cpan.org/~hmbrand/Spreadshe...

如何用perl操作excel,求代码

use strict;use Spreadsheet::Read;use Spreadsheet::Write; # 这两个 module 你可能要自己用 ppm / cpan 下载 my $data = {};my @files = ( "1.xls" , "2.xls" ) ;读取 my $index = 1;foreach my $f ( @files ) { my $xls = ReadData ( $f ) ;my $sheet = $xls -&gt;...

perl如何打开大数据的excel表?

拿到文件指针$workbook,分段读取文件,不要一下子全部加载到内存里.

perl如何读取excel中的日期时间

对于excel的读取,建议用Win32::OLE模块,相当强大和简便 代码如下:use Win32::OLE;use Win32::OLE::Const 'Microsoft Excel';use Cwd;use File::Find;use File::Copy;my $curdir=getcwd();get already active Excel application or open new my $Excel = Win32::OLE-&gt;GetActiveObject('Excel...

Perl问题关于my $Excel = Win32::OLE-&gt;GetActiveObject('Exc...

my $Excel = Win32::OLE-&gt;new('Excel.Application', sub{(shift)-&gt;Quit;});是用来新建一个Win32::OLE对象 而my $Excel= Win32::OLE-&gt;GetActiveObject('Excel.Application'); 是使用已经打开的Excel进行工作。如果目前你没有打开Excel,必须使用new新建一个,如果打开了就可以使用GetActiveObject了...

我要在linux下使用perl来处理excel文件

你可以用Spreadsheet::ParseExcel先解析excel,再用Spreadsheet::WriteExcel写入。或者直接使用Spreadsheet::ParseExcel::SaveParser。

Perl win32::OLE 操作excel的教程说明

Set ex = CreateObject(Excel.Application)ex = Win32::OLE-&gt;new('Excel.Application', \&amp;OleQuit) or die "oops\n";ex.Visible = 1 ex-&gt;{Visible} = 1;ex.Workbooks.Add()ex-&gt;Workbooks-&gt;Add;Dim ovR8 ovR8 = "3 is a good number"ovR8 = Variant(VT_R8, "3 is a good number...

...模块写中文字符到excel中,显示的是乱码,如何解决?来高手指点下_百度...

decode('gb2312',$text); # 进行转码 建议用utf-8 decode('utf-8',$text);然后就不会乱码了

用perl写数据到excel中时,为什么表头有了,就是下面的内容一直为空...

创建一个新的EXCEL文件 my $workbook = Spreadsheet::WriteExcel-&gt;new('PERL生成.xls');添加一个工作表 worksheet = $workbook-&gt;add_worksheet();新建一个样式 format = $workbook-&gt;add_format(); # Add a format format-&gt;set_bold();#设置字体为粗体 format-&gt;set_color('red');#设置单元格...

perl excel ole 如何处理CP932编码的excel

(如无意外) Excel 就是 UTF-8, 不用管里面的内容是甚麼 是 Perl 不是 PERL, Perl 是语言的名称, perl 是解释器 主要问题是如果你光是用 Win32::OLE, 那预设的编码就是你系统的编码, 例如 GB2312, 要解决你的问题, 可以试试在开头改成:use Win32::OLE 'CP_UTF8';$Win32::OLE::CP ...

perl的try模块哪个版本有 regsvr32模块加载失败 linux安装perl模块 查看perl安装的模块 模块ocx已加载 dll模块加载失败 perl模块 perl常用模块 perl设置搜索模块当前路径
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
菠萝和香蕉可以一起吃吗 菠萝不可以和什么同食 菠萝和香蕉一起吃能补充哪些营养? 菠萝和香蕉一起吃好吗 有没有一些专门用于监督样板房清洁人员工作情况的软件或应用程序? 我高一,身高182cm,中投能力偏上但不稳定,三分能力弱,身体对抗中等偏上... 打篮球大家觉得我应该打什么位置好? 闲鱼上全是好评的买家靠谱吗-怎么看闲鱼买家是否可靠 怎样判断闲鱼买家真假 下体流黄色的东西是什么原因啊? 为什么白带是黄色的? 贴吧新版 我的好友怎么删除 根据科目汇总表自动生成总账,财务报表的EXCEL模块。 贴吧好友怎么删 excel在打开后自动添加一个module模块 谁有Excel的完整工资表模块 Excel 模块与类模块的区别,各有什么用 excel中模块是什么? Excel 标准模块的概念求助 Excel文件不提示下载,而是在浏览器中打开? 请教excel可以上传、下载数据,是什么功能?宏吗?(如图) 我的office里面什么都有就是没有excel,为什么?要怎么解决? Excel 2013 有哪些值得推荐的实用模块 急急急,跪求excel2003完整版下载啊,在线等!要有线性规划模块的 我从地税网站上面下载EXCEL模块,填写了一些数据后,导入EXCEL 为什么总是显示失败呢? 下载的excel模块怎么运用 格力空调哪个型号好想买格力空调.壁挂式 格力空调壁挂机有双向换气的吗? 格力空调挂机最大几匹 格力壁挂空调,除湿为啥调不了风速? 格力壁挂式空调处于待机状态耗电多少 Excel2007的函数的安装文件或模块在哪里? 百度贴吧是怎么删的呀,分那几步操作 excel的三大模块九个功能? 贴吧信息如何删除 新版贴吧最近逛的吧怎么删除 新版百度贴吧怎么删除我的转帖a a 百度贴吧怎么删除? 百度贴吧帖子怎么删除? 百度贴吧,怎么删除自己的帖子要怎么样才好呢? 百度贴吧怎么删!!急急急 谢谢 怎样把多余的贴吧删掉 最新贴吧怎么删除照片 枕头用多长时间应该更换? 枕头一般多久换一次? 枕头多久换 枕头要多久换一次 枕头的寿命 不同的枕头多久更换一次比较好 怎么保养 台式电脑录音口在哪里? centos怎样安装ssh服务