Perl读取Excel文件并解决中文乱码问题

使用CPAN中的Spreadsheet::ParseExcel模块读取Excel文件中的内容,当遇到中文乱码问题时,使用Spreadsheet::ParseExcel::FmtUnicode模块重新编码,当将中文赋值给变量时,用Encode模块经GB2312解码即可。

use strict;  
use Spreadsheet::ParseExcel;  
use Spreadsheet::ParseExcel::FmtUnicode;
use Encode;  
   
my $oFmtC=Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map=>"CP936");  
my $parser=Spreadsheet::ParseExcel->new();  
my $workbook=$parser->parse(‘test.xls‘,$oFmtC);  
   
if (!defined $workbook){  
    die $parser->error(),".\n";  
}  
   
for my $worksheet ($workbook->worksheets()){  
    my ($row_min,$row_max)=$worksheet->row_range();  
    my ($col_min,$col_max)=$worksheet->col_range();  
    for (my $row=$row_min;$row<=$row_max;$row++){ 
        for (my $col=$col_min;$col<=$col_max;$col++){  
            my $cell = $worksheet->get_cell($row,$col); 
            $a=$cell->value();  
            $a=decode("gb2312",$a);
            #do something 
        }  
    }  
}
时间: 2024-11-03 05:21:24

Perl读取Excel文件并解决中文乱码问题的相关文章

java读取.properties文件及解决中文乱码问题

Java项目中有些信息(例如web的配置信息)可能要放在.properties文件中,那我们应该怎么来读取它们呢,下面给出一个工具类做一说明,并解决了中文乱码问题: 1.其中config.properties文件信息如下: name=\u843D\u82B1\u6709\u610Fwang王 str=\u6D41\u6C34\u65E0\u60C5 boolean=true 2.PropertiesUtil工具类读取.properties文件 import java.io.BufferedInp

Java底层代码实现单文件读取和写入(解决中文乱码问题)

需求: 将"E:/data/车站一次/阿坝藏族羌族自治州.csv"文件中的内容读取,写入到"E:/data//车站一次.csv". 代码: public class FileOpe { public static void main(String[] args) { sigle(); } public static void sigle(){ BufferedReader bufr = null; BufferedWriter bufw = null; try {

JAVA本地读取文件,解决中文乱码问题

JAVA本地读取文件出现中文乱码,查阅一个大神的博客做一下记录 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;imp

spring使用@Value注解读取.properties文件时出现中文乱码问题的解决

解决办法 在spring中我们常常使用.properties对一些属性进行一个提前配置, spring 在读取*.properties文件时, 默认使用的是asci码, 这时 我们需要对其编码进行转换. 下面列举两种常见的方法. 方法一:在配置spring.xml文件时,声明所需的∗.properties文件时直接使用"utf−8"编码 <context:property-placeholder location="classpath:conf/*.properties

使用Perl读取Excel文件

1. 任务 为了实现一些机械分词算法,准备使用“国家语委语料库”的分词词表,在线下载到得词表文件是一个Excel文件.本文的任务就是使用Perl从该Execl文件中提取所有的词语. 词表文件格式如下: 需要的词语的位置在从第8行开始的,第B列的所有单元格.一共有14629个词语.(PS:语料库的分词词表包含8万多个词语,但是在线下载到是出现次数在50次以上的词语,只有这1万多). 2. 使用什么模块 通过阅读一些博文发现,PERL的Spreadsheet::ParseExcel模块支持Excel

properties解决中文乱码

读取 properties文件,解决中文乱码 ConfigurableEnvironment environment = context.getEnvironment(); String env=environment.getActiveProfiles()[0]; Properties pro = new Properties(); Map<String, String> mpro = new HashMap<String, String>(); String proName =

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi

SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】

配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-c