上次写了处理excle的一个很简单的程序,但是是那个只适合对方英文和数字的很快,当碰到了中文后就会变的力不从心了了,所以我将程序进行了改动,使得可以识别中文.当我们在处理很多xls表的时候,特别是数据汇总,你要将所有的数据全部汇总在一起并且导成txt的格式,利于做其他的事情,这个时候就需要下列的程序了:
需要安装的模块:
IO::stringy ;
IO::scalar ;
Spreadsheet::Read .
#!/usr/bin/perl
use File::Find;
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtUnicode;
my $oExcel = new Spreadsheet::ParseExcel;
open IN,'>>E:/wangli.txt' or die "$!"; #将数据导到这个文件中,追加的形式
sub print_path #创建子程序,用于抓取所以 为 .xls的文件名(绝对路径)
{
my $file = $_;
if ( $file =~ /\.xls$/ )
{
$lpath = $File::Find::name;
push( @lpath, $lpath );
}
}
find( \&print_path, "E:/" ); #对指定的目录进行查询,比如 E盘
foreach my $path (@lpath) {
#die "You must provide a filename to $0 to be parsed as an Excel file" unless @ARGV;
#set for charactor
my $oFmtC = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map=>"CP936"); #进行字符编码指定,中文就不会是乱码了。。。
my $oBook = $oExcel->Parse($path,$oFmtC); # 将获取的文件进行处理。
my($iR, $iC, $oWkS, $oWkC);
print "FILE :", $oBook->{File} , "\n";
print "COUNT :", $oBook->{SheetCount} , "\n";
print "AUTHOR:", $oBook->{Author} , "\n"
if defined $oBook->{Author};
for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++)
{
$oWkS = $oBook->{Worksheet}[$iSheet];
#print "--------- SHEET:", $oWkS->{Name}, "\n";
for(my $iR = $oWkS->{MinRow} ;
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
$iR++)
{
for(my $iC = $oWkS->{MinCol} ;
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
$iC++)
{
$oWkC = $oWkS->{Cells}[$iR][$iC];
print IN $oWkC->Value, "\t" if($oWkC);
}
print IN "\n"
}
}
}
close IN;
大致就是这样的,数据出来以后,数据的格式就是以制表符分割的txt 文件的了,哈哈,简单吧
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hendyyou/archive/2009/11/08/4787523.aspx
分享到:
相关推荐
这个教程就是关于如何使用Java调用Perl脚本来生成Excel文件,然后将生成的文件压缩为ZIP格式,同时解决可能出现的乱码问题。这里我们将深入探讨这两个关键步骤。 首先,让我们来看看Java调用Perl脚本的部分。在Java...
【编码挑战-数据孵化器】是面向开发者和数据科学爱好者的一项实践性学习项目,旨在通过实际的编程任务来提升对Python编程以及数据处理的理解和技能。这个挑战可能涉及到使用Python进行数据清洗、分析、可视化和建模...
- **chardet**: 自动检测字符编码。 - **xpinyin**: 汉字转拼音库。 - **awesome-slugify/python-slugify/unicode-slugify**: 生成slug(URL友好的字符串)的库。 - **pytils**: 处理俄语字符串的工具,包括...
7. **模块使用**:Perl有一个庞大的模块生态系统,如`DBI`用于数据库操作,`Spreadsheet::ParseXLSX`或`Excel::Writer::XLSX`用于处理Excel文件。`Text::Table`模块则用于创建和格式化文本表格。 8. **最佳实践**:...
因此,这个项目可能包含对中文字符串的预处理算法,如全角半角转换、UTF-8编码处理,以及对中文词汇的拆解和匹配策略。 【标签】"php"进一步确认了这个项目的开发语言是PHP,这意味着源代码将使用PHP语法,包括函数...
### 文件下载及Web文件的ContentType类型详解 在Web开发中,处理文件下载是常见的需求之一。...本文将详细介绍如何实现文件下载功能...此外,还需注意编码问题,例如中文文件名的乱码问题,这同样会影响用户的下载体验。
- Unicode编码用于支持更广泛的字符集,通常使用16位或更高,但本题中提到的是ASCII字符集。 3. **结论**:正确答案是A. 8。 #### 数组排序 1. **问题描述**:给定整型数组`int[] x = {12, 35, 8, 7, 2};`,调用...
5yr邮政编码级别的美国社区调查人口统计信息。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java Javascript WPS Matlab SPSS Scala Perl CC#...
文件夹我的编码项目示例和计算机科学/ IT课程的书面作业。 我叫John Kucera。 我是就读于马里兰大学全球校园的计算机科学专业和网络安全专业。 我的预期毕业日期是2022年5月。我目前的GPA是4.0。技术技能和能力...
在实际操作中,邮件分析可能涉及到编程语言(如Python、Perl)、数据分析工具(如Excel、Pandas)以及专门的邮件分析软件。如果你正在处理"SendMail.rar",你可能需要了解这些工具和技术,以便有效地解析和理解邮件...
- **知识点**: Excel数据处理能力 - **详细说明**: Excel虽不擅长复杂的数据分析任务,但可以借助插件实现简单的统计建模,如逻辑回归。具体步骤包括数据准备、公式输入等。 #### 30. 代码与算法优化 - **知识点**:...
7. **数据库知识**:文档中提到了SQL语言、对象关系映射(ORM)、Excel,以及数据库的ACID特性(原子性、一致性、隔离性、持久性),这些都是评估程序员在数据库设计、操作以及数据处理方面的能力。 8. **软件开发...
18. HiFi RegExp Tool / Tableizer: 这些工具可能用于处理正则表达式(RegExp)和将Excel表格转换为HTML代码。 19. Then: Easy Email Reminder: 这是一个电子邮件提醒服务,可能用于安排和发送后续邮件提醒。 20. ...
NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统...
BINHex:苹果的一种编码格式 BMP:Windows或OS/2位图文件 BOOK:Adobe FrameMaker Book文件 BOX:Lotus Notes的邮箱文件 BPL:Borlard Delph 4打包库 BSP:Quake图形文件 BUN:CakeWalk 声音捆绑文件(一种MIDI...