在Perl中读写Excel表

简介: Perl中读写Excel很方便,贴段代码为以后参考。 读写Excel的组件需要另外安装,指令如下:    perl -MCPAN -e shell -> install Spreadsheet::WriteExcel    perl -M...

Perl中读写Excel很方便,贴段代码为以后参考。

读写Excel的组件需要另外安装,指令如下:

   perl -MCPAN -e shell -> install Spreadsheet::WriteExcel
   perl -MCPAN -e shell -> install Spreadsheet::ParseExcel

 

#!/usr/bin/perl
use Spreadsheet::WriteExcel; #写入Excel数据
use Spreadsheet::ParseExcel; #读取Excel资料

# 读取数据
# 使用: LoadStringsFromExcel(fileName);
sub LoadStringsFromExcel
{
	my $parser = Spreadsheet::ParseExcel->new();
	my $workbook = $parser->parse(@_[0]); #打开传入的文件
	my $TotalCount = 0;

	if(!defined $workbook) #是否打开成功
	{
		print "Failed to open @_[0]\n";
		die $parser->error(),".\n";
	}

	$Sheets_Count = $workbook->worksheet_count(); #有多少个Sheet

	#依次访问所有Sheet
	for ($index=1;$index<=$Sheets_Count;$index++) 
	{
		my $worksheet = $workbook->worksheet(@Sheets[$index-1]);
		my $result;
		if(!defined $worksheet) #读取Sheet失败
		{
			print "Could not get the worksheet \n";
			last;
		}
		else
		{
			$result = LoadWordingsFromSheet($worksheet);
			$TotalCount += $result;
		}
	}
	printf "\nTotal found $TotalCount strings\n";
	print "Finished!\n";
}

# 读取Sheet中字串,由LoadStringsFromExcel呼叫
sub LoadWordingsFromSheet
{
    my $sheet = $_[0]; #取得传入的sheet
    if(!defined $sheet)
    {
	   die "Could not get argument!\n";
    }
    
    #得到Sheet中的最小行号及最大行号
    my ($minRow,$maxRow) = $sheet->row_range();
    print "Now, checking ",$sheet->get_name()," \n"; #打印Sheet的名称

	$count = 1;
	
	#依次读取每行数据中第一列的数据
    for($i=$minRow;$i<=$maxRow;$i++) 
    {
		#取到第一列的数据, get_cell(行号,列号)
		$str = ($sheet->get_cell($i,0))->value(); 
		$str = trim($str);
		print $str,"\n";
		$count++;
    }
	return $count;
}


#写入Excel
#使用WriteDataToExcel(文件名)
sub WriteDataToExcel
{
	my $workbook = Spreadsheet::WriteExcel->new(@_[0]);#打开Excel文件
	if(!defined $workbook) #是否打开成功
	{
		print "Failed to open @_[0]\n";
		die $parser->error(),".\n";
	}
	
	my $worksheet = $workbook->add_worksheet(); #新建一个Sheet
	if(!defined $sheet)
    {
	   die "Cannot create new sheet!\n";
    }
	
	#写入第一行标题 write(行号,列号,内容)
	$worksheet->write(0,0,'ID');
	$worksheet->write(0,1,'RULE');
	
	#其它处理
}


 

目录
相关文章
|
2月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
67 2
|
2月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
92 0
对excel读写的三个模块,xlsxwriter最牛,xlwt , xlrd,openpyxl
对excel读写的三个模块,xlsxwriter最牛,xlwt , xlrd,openpyxl
|
4月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
|
4月前
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
5月前
|
存储 对象存储 Python
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
|
5月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
6月前
|
XML Java 测试技术
《手把手教你》系列技巧篇(六十七)-java+ selenium自动化测试 - 读写excel文件 - 中篇(详细教程)
【6月更文挑战第8天】本文介绍了Java中操作Excel的工具,包括POI和JXL。POI支持处理Office 2003及以下的OLE2格式(.xls)和2007以上的OOXML格式(.xlsx)。而JXL只能处理2003版本的Excel文件。文章详细讲解了如何下载和使用JXL库,并给出了一个简单的Java代码示例,展示如何读取2003版Excel文件中的数据。在实际项目中,由于JXL对新版本Excel的支持限制,通常推荐使用POI。
75 5
|
6月前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十八)-java+ selenium自动化测试 - 读写excel文件 - 下篇(详细教程)
【6月更文挑战第9天】本文介绍了如何使用Java处理Excel文件中的不同数据类型,包括日期、数字、布尔值和标签(常规字符串)。文章提供了两个示例,分别使用JXL库和Apache POI库来读取Excel文件。
52 1
|
6月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
141 1