- 论坛徽章:
- 0
|
本帖最后由 zhlong8 于 2012-01-04 09:39 编辑
test.zip
(2.26 KB, 下载次数: 23)
问题:perl读取excel中文乱码
解决方法:
use Spreadsheet::ParseExcel::FmtUnicode;
my $oExcel = new Spreadsheet::ParseExcel;
my $oCode = "CP936";
my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => $oCode);
my $oBook = $oExcel->Parse($excelFile, $oFmtJ);
详细代码- use strict;
- use Cwd;
- use Spreadsheet::ParseExcel;
- use Spreadsheet::ParseExcel::FmtUnicode;
- use Unicode::Map;
- my ($EXCEL,$BOOK,$SHEET,$CODE,$FMTJ,$CELL);
- my $dir = getcwd;
- my $dir = $dir.'\\test.xls';
- sub initExcel()
- {
- $EXCEL = new Spreadsheet::ParseExcel;
- $CODE = "CP936";
- $FMTJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => $CODE);
- $BOOK = $EXCEL->Parse($dir,$FMTJ);
- $SHEET = $BOOK->Worksheet('供数接口配置信息');
- }
- sub main
- {
- initExcel();
- $CELL = $SHEET->{Cells}[0][0]->{Val};
- print $CELL;
- }
- main();
复制代码 问题:使用了FmtUnicode模块 code = 'CP936'依然乱码
解决方法:
将:$CELL = $SHEET->{Cells}[0][0]->{Val};
改为:$CELL = $SHEET->{Cells}[0][0]->Value; |
|