Chinaunix
标题:
perl 读excel单元格中长字符问题
[打印本页]
作者:
Oo慢慢来oO
时间:
2011-09-28 11:00
标题:
perl 读excel单元格中长字符问题
本帖最后由 Oo慢慢来oO 于 2011-09-29 17:46 编辑
需求:有一个excel单元格有1200个字符用perl读出来
问题:perl读excel单元格只能读1008个字符后面的读不出来
其他:在当前目录新建一个test.xls第一个单元格放一个超过1008的字符窜
代码如下:
use strict;
use Cwd;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
my $EXCEL = '';
my $BOOK = '';
my $SHEET = '';
my $dir = getcwd;
my $dir = $dir.'\\test.xls';
sub initExcel()
{
$EXCEL = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
$EXCEL->{DisplayAlerts} = 'False';
$BOOK = $EXCEL->Workbooks->Open("$dir");
$SHEET = $BOOK->Worksheets(1);
}
sub closeExcel
{
$BOOK->close();
$EXCEL->quit();
}
sub main
{
initExcel();
my $tmp = $SHEET->Cells(1,1)->{Text};
print $tmp;
closeExcel();
}
main();
复制代码
test.zip
(1.74 KB, 下载次数: 15)
2011-09-28 10:58 上传
点击文件名下载附件
修改后代码:
use strict;
use Cwd;
use Spreadsheet::ParseExcel;
my $EXCEL = '';
my $SHEET = '';
my $dir = getcwd;
my $dir = $dir.'\\test.xls';
sub initExcel()
{
$EXCEL = Spreadsheet::ParseExcel::Workbook->Parse($dir);
$SHEET = $EXCEL->{Worksheet}[0];
}
sub main
{
initExcel();
my $cell = $SHEET->{Cells}[2][0]->{Val};
print "$cell\n";
}
main();
复制代码
谢谢各位
作者:
py
时间:
2011-09-28 13:49
回复
1#
Oo慢慢来oO
use Spreadsheet::ParseExcel;
复制代码
作者:
Oo慢慢来oO
时间:
2011-09-29 12:24
回复
2#
py
加了以后能显示1040个字符,但还是不够。
作者:
iamlimeng
时间:
2011-09-29 12:58
#!/usr/bin/perl
use strict;
use Spreadsheet::ParseExcel;
my $file = 'test.xls';
my $xls = Spreadsheet::ParseExcel::Workbook->Parse($file);
my $cell = ${$xls->{Worksheet}}[0]->get_cell(0,0)->value();
print "$cell\n",length($cell);
复制代码
我把内容增加一倍长度,依然能正确读取。
作者:
Oo慢慢来oO
时间:
2011-09-29 17:42
我把内容增加一倍长度,依然能正确读取。
iamlimeng 发表于 2011-09-29 12:58
没问题了。我对perl模块还不是很了解,把2楼给的代码{use ……;}直接粘贴进去,内容没改,故还是读一部分。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2