加载中…
个人资料
Like-JokerZ
Like-JokerZ
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,279
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

使用PHPExcel读取xls/xlsx或csv表格文件数据

(2017-10-17 08:40:47)
标签:

top博客

phpexcel

最近经常处理Excel文件数据的导入导出,都是使用PHPExcel类库。PHPExcel是一个强大的PHP类库,用于生成和处理Excel文件以及相关操作。其功能强大,类和方法繁多。由于没有找到权威的中文手册,使用过程中也遇到了许多问题,在这里做一下记录和分享。

代码是边对照手册和边通过Google自己编写的,某些方法不一定是最优解,但都是经过调试和线上运行过的,保证可用。

今天先是读取的部分:

首先是引入类库文件,在读取Excel文件时可以不引入PHPExcel.php主文件,直接引入PHPExcel下的 IOFactory.php  类即可。


require_once(__YOUR_LIB_PATH__.'/PHPExcel/IOFactory.php');

然后新建PHPExcel对象并读取相应文件。

在实际过程中发现csv文件与xls(x)文件的处理稍有不同,需要设置一些文件选项,因此加入了文件类型判断,区分两种情况。


$file "test.csv";

$type strtolower( pathinfo($file, PATHINFO_EXTENSION) );

$path __YOUR_FILE_PATH__.'/'.$file;if (!file_exists($path)) {     die('no file!');
}//根据不同类型分别操作if( $type=='xlsx'||$type=='xls' ){
        $objPHPExcel PHPExcel_IOFactory::load($path);
}else if( $type=='csv' ){
        $objReader PHPExcel_IOFactory::createReader('CSV')
          ->setDelimiter(',')
          ->setInputEncoding('GBK') //不设置将导致中文列内容返回boolean(false)或乱码
          ->setEnclosure('"')
          ->setLineEnding("\r\n")
          ->setSheetIndex(0);
        $objPHPExcel $objReader->load($path);

}else{  die('Not supported file types!');
}

现在已经打开了相应的文件,接下来就是选择标签页,读取行和列的总数,为循环取出数据做准备。

需要注意的是,通常Excel文件的列名为大写英文字母制,如第一列为‘A’,第26列为‘Z’,第27列为‘AA’。以此类推。通过getHighestColumn()方法可获得表中最后一列的列名,为了方便后续的操作,需要将列名转换为数字的索引。

阅读完整原文:请查看 TOP博客

原文地址:http://www.admincms.top/live_learn/2017-10-16/39.html

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有