在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');
	
	#其它处理
}


 

目录
相关文章
|
1月前
|
人工智能 数据可视化 机器人
【办公自动化】Excel透视表的简单应用
【办公自动化】Excel透视表的简单应用
|
2月前
|
监控 数据处理 索引
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
36 1
|
3月前
|
Go API
一文搞懂Go读写Excel文件
一文搞懂Go读写Excel文件
56 0
|
3月前
|
数据采集 数据可视化 数据处理
【办公自动化】在Excel中按条件筛选数据并存入新的表2.0
【办公自动化】在Excel中按条件筛选数据并存入新的表2.0
52 1
|
4月前
|
Java Apache Spring
springboot如何导出Excel某个表的表字段以及字段类型
springboot如何导出Excel某个表的表字段以及字段类型
35 0
|
4月前
|
关系型数据库 MySQL 数据库连接
python查询数据库的某个表,将结果导出Excel
python查询数据库的某个表,将结果导出Excel
54 0
|
16天前
|
Python
python_读写excel、csv记录
python_读写excel、csv记录
16 0
|
23天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
101 0
|
3月前
|
存储 数据挖掘 数据处理
Python与Excel的交互:读写Excel文件和处理数据
Python与Excel的交互:读写Excel文件和处理数据
|
3月前
|
数据采集 数据可视化 数据处理
【办公自动化】在Excel中按条件筛选数据并存入新的表
【办公自动化】在Excel中按条件筛选数据并存入新的表
40 0