- 论坛徽章:
- 0
|
10可用积分
往excel里写东西,中文老是乱码。
use Unicode::Map();
my $Map = new Unicode::Map("GB2312");
$worksheet->write_unicode(2, 2, $Map->to_unicode("考生姓名"));
上面这段是网上的代码,在linux环境下单元格里是个小格子,乱码,但把这个excel导入到windows下面能正常显示。
我照着上面的那段代码写了自己的程序
#!usr/local/perl5/bin/perl
use Spreadsheet::WriteExcel;
use Unicode::Map();
my $Map=new Unicode::Map("GB2312");
my $file="output_files/abc.xls";
my $workbook=Spreadsheet::WriteExcel->new($file);
my $worksheet=$workbook->add_worksheet();
...
.....
.....
foreach my $a(@Doc){
$row++;
$col=0;
my @b=@$a;
foreach my $c(@b){
$worksheet->write_unicode($row,$col,$Map->to_unicode($c));
$col++;
}
}
在linux环境下依然是乱码,导入到windows下面还是乱码。linux环境下乱码无所谓,我的客户都是在windows下的,只要能在windows下正常显示就行了。
Excel单元格里会有中英文混合的小段文字,原因应该不是出在这吧??
望高手赐教,先谢谢了!
我身上就只有十分,只能给这么多了。。。 |
|