#!usr/bin/perl -W

use strict;
use Spreadsheet::ParseExcel;#PERL的Spreadsheet::ParseExcel模块支持Excel的读操作。 use utf8;
#引入utf8模块 脚本内的字符串使用utf8作为编码格式
binmode(STDOUT,":encoding(gbk)");
#标准输出使用gbk作为编码格式,也可以把gbk改为gb2312
binmode(STDIN,":encoding(gbk)");
#如果涉及到输入流,例如读文件,不加这条读中文文件会出现乱码
binmode(STDERR,":encoding(gbk)");
#如果异常错误中的字符串有中文,请加上STDERR,否则也会出现乱码 #创建一个parser对象
my $parser=Spreadsheet::ParseExcel->new();
#返回一个文件(IO_300.xls)句柄,通过该句柄可以实现对文件的操作
my $workbook=$parser->parse("IO.xls"); #defined:此函数作用不是判断某个变量是否已经定义,而是用来判断某个变量是否为空
#如果文件不为空
if(!defined $workbook )
{
die $parser->error(),".\n";
} #遍历工作表
my $count=0;
for my $worksheet ($workbook->worksheets())
{
#获取表名
my $TableName = $worksheet->get_name();
print " /////////////////////////////////////////////////////////////////$TableName////////////////////////////////////////////////////////////////\n";
#得到工作表的行和列标范围
my ($row_min,$row_max)=$worksheet->row_range();
my ($col_min,$col_max)=$worksheet->col_range();
print "($row_min,$row_max)\n";
print "($col_min,$col_max)\n";
#遍历行和列
for my $row (1 .. $row_max) { for my $col (1 .. $col_max) {
#根据行和列得到单元格
my $cell=$worksheet->get_cell($row,$col);
#除非单元格为空,否则继续执行下面的代码 next和c语言中的continue语句类似
next unless $cell;
#打印单元格的值
print "Row, Col = ($row, $col)\n";
print "Value = ", $cell->value(), "\n";
$count+=1;
}
}
}
print "总共执行的次数:$count";
<STDIN>;

Perl读取Excel中的数据的更多相关文章

  1. sql 读取excel中的数据

    select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...

  2. SpringBoot(十三)_springboot上传Excel并读取excel中的数据

    今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...

  3. 无法读取Excel中的数据单元格。有数据,但是读出来全是空值

    C#读取Excel,取值为空的解决办法! C#读取Excel遇到无法读取的解决方法是什么呢?这样在C#读取Excel的过程中有很多问题,那么本文就向你介绍如何解决C#读取Excel遇到无法读取的解决方 ...

  4. 读取Excel中的数据到DataSet

    读取Excel中的数据到DataSet 1.引用命名空间 using System.Data.OleDb; 2.输入Excel文件,输出DataSet public DataSet ExecleDs( ...

  5. C# 读取Excel中的数据

    #region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name=&quo ...

  6. java中使用jxl读取excel中的数据

    package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...

  7. asp.net读取Excel中的数据问题

      1.Microsoft.ACE.OLEDB.12.0 与Microsoft.Jet.OLEDB.4.0 在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Exc ...

  8. C# 读取Excel中的数据到DataTable中

    原文地址:http://www.open-open.com/code/view/1420029490093 public DataTable ExcelToDS(string Path) { stri ...

  9. JAVA导入(读取)Excel中的数据(支持xls与xlsx文件)

    一.导入jar包 poi-3.7.jarpoi-scratchpad-3.7.jarpoi-examples-3.7.jarpoi-ooxml-3.7.jarpoi-ooxml-schemas-3.7 ...

随机推荐

  1. Spring5事务管理

    事务管理是什么? 相当于过滤器,如果这一进程中上一个操作正常执行完后提交数据已经发生改变,但是下一个操作中出现了异常,这样就会影响数据的查看. 典型例子:银行转账,甲方已经转钱给乙方(甲方已扣钱),乙 ...

  2. 从0到1写一款自动为Markdown标题添加序号的Jetbrains插件

    1. markdown-index 最近做了一个Jetbrains的插件,叫markdown-index,它的作用是为Markdown文档的标题自动添加序号,效果如下: 目前已经可以在Jetbrain ...

  3. Android的Handler线程切换原理

    Handler是我们在开发中经常会接触到的类,因为在Android中,子线程一般是不能更新UI的. 所以我们会使用Handler切换到主线程来更新UI,那Handler是如何做到实现不同线程之间的切换 ...

  4. 【AGC】使用云调试优惠扣费、华为设备上触发崩溃、无法下载华为应用市场问题小结

    ​ 1.使用云调试剩余优惠时长还剩300分钟,但还会扣费的情况. 问题描述:用户的云调试账户显示剩余优惠时长还有300分钟,但在使用云调试的过程中,还是产生了扣费的情况. ​ 解决方案: 当开发者成功 ...

  5. salesforce零基础学习(一百一十七)salesforce部署方式及适用场景

    本篇参考:https://architect.salesforce.com/decision-guides/migrate-change https://developer.salesforce.co ...

  6. flutter系列之:flutter中常用的GridView layout详解

    目录 简介 GridView详解 GridView的构造函数 GridView的使用 总结 简介 GridView是一个网格化的布局,如果在填充的过程中子组件超出了展示的范围的时候,那么GridVie ...

  7. js中的对象和数组的创建

    <!DOCTYPE html><html><head> <title>获取控制</title> <meta charset=" ...

  8. CAS核心思想、底层实现

    ★ 1.CAS 是什么 CAS 是比较并交换,是实现并发算法时常用到的一种技术.当内存的值和期望的值相等时,进行更新,否则 什么都不做 或 重来 . CAS 的底层实现:是靠硬件实现的,靠硬件的原子性 ...

  9. prettierrc格式化常用配置

    #最大长度 printWidth: 140 #单引号 singleQuote: true tabWidth: 2 useTabs: false # 句尾添加分号 semi: false # js an ...

  10. IDEA快速生成数据库表的实体类

    IDEA连接数据库 IDEA右边侧栏有个DataSource,可以通过这个来连接数据库,我们先成功连接数据库 点击进入后填写数据库进行连接,注意记得一定要去Test Connection 确保正常连接 ...