phpexcel读取excel的xls xlsx csv格式

我之前写过一篇PHP读取csv文件的内容

上代码index.php

<?php

/**
 *
 * @author XC
 *
 */
class Excel
{
    public $currentSheet;
    public $filePath;
    public $fileType;
    public $sheetIndex=0;
    public $allColumn;
    public $allRow;
    public function initialized($filePath) {
        if (file_exists($filePath)) {
            $this->filePath=$filePath;
        }else{
            return array();
        }
        //以硬盘方式缓存
        $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_discISAM;
        $cacheSettings = array();
        PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
        $file_ext=strtolower(pathinfo($this->filePath, PATHINFO_EXTENSION));
        switch ($file_ext) {
            case ‘csv‘:
                $this->fileType=‘csv‘;
                break;
            case ‘xlsx‘:
                $this->fileType=‘excel‘;
                break;
            case ‘xls‘:
                $this->fileType=‘excel‘;
                break;
            default:
                $this->fileType=‘‘;
                break;
        }

        if ($this->fileType==‘csv‘) {
            $PHPReader = new PHPExcel_Reader_CSV();

            //默认字符集
            $PHPReader->setInputEncoding(‘GBK‘);

            //默认分隔符
            $PHPReader->setDelimiter(‘,‘);

            if(!$PHPReader->canRead($this->filePath)){
                return array();
            }
        }elseif ($this->fileType==‘excel‘){
            $PHPReader = new PHPExcel_Reader_Excel2007();

            if(!$PHPReader->canRead($this->filePath)){
                $PHPReader = new PHPExcel_Reader_Excel5();

                if(!$PHPReader->canRead($this->filePath)){
                    return array();
                }
            }
        }else{
            return array();
        }

        $PHPReader->setReadDataOnly(true);
        $PHPExcel = $PHPReader->load($this->filePath);
        $this->currentSheet = $PHPExcel->getSheet((int)$this->sheetIndex);
        //$this->currentSheet = $PHPExcel->getActiveSheet();
        $this->allColumn=$this->currentSheet->getHighestColumn();
        $this->allRow=$this->currentSheet->getHighestRow();
    }

    public function fetch($beginRow=NULL, $endRow=NULL){
        $currentSheet=$this->currentSheet;
        $allColumn=$this->allColumn;$allRow=$this->allRow;
        $dataSrc=$data=array();

        //获取列标题
        for($currentColumn= ‘A‘;$currentColumn<= $allColumn; $currentColumn++){
            $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, 1)->getValue();//ord()將字符转为十进制数
            $dataSrc[ord($currentColumn) - 65]=strtolower(trim($val));}
            //echo implode("\t", $dataSrc);
            $beginRow=$beginRow ? $beginRow : 2;
            $endRow=$endRow ? $endRow : $allRow;
            for($currentRow = $beginRow ;$currentRow <= $endRow ;$currentRow++){
                //从第A列开始输出$dataRow=array();
                for($currentColumn= ‘A‘;$currentColumn<= $allColumn; $currentColumn++){
                    $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();//ord()將字符转为十进制数
                    $dataRow[$dataSrc[ord($currentColumn) - 65]]=$val;
                    //单元级数据处理 ... 格式化日期等
                }

                //行级数据处理 ...  

                if($dataRow){
                    $data[]=$dataRow;}
            }

            //echo ‘<pre>‘, print_r($data), ‘</pre>‘;

            //echo "\n";
        return $data;
    }
}

require_once ‘Classes/PHPExcel.php‘;
$import=new Excel();
$import->initialized(dirname(__FILE__) . ‘/test.xlsx‘);
header("Content-type: text/html; charset=utf-8");
echo ‘<pre>‘, print_r($import->fetch()), ‘</pre>‘;

?>

其中的$import->initialized(dirname(__FILE__) . ‘/test.xlsx‘);        test.xlsx修改为自己的execl路径

require_once ‘Classes/PHPExcel.php‘;修改为你自己PHPExcel.php所在的路径

PHPExcel.php可从官网下载 http://phpexcel.codeplex.com/

时间: 2024-10-10 20:18:20

phpexcel读取excel的xls xlsx csv格式的相关文章

(实用篇)PHPExcel读取Excel文件的实现代码

用PHPExcel读取Excel 2007 或者Excel2003文件,需要的朋友,可以参考下. 涉及知识点:  php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进制数 php对excel日期格式读取,并进行显示转化 php对汉字乱码进行编码转化 <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianToJD(1, 1, 1

PHPExcel——读取excel

在网上找了excel读取的一些资料,个人觉得PHPExcel这还是挺好用的,相对比较全的工具. 主要功能是读取上传的excel文件,插入或更新到数据库. iconv("gbk","utf8",$_FILES["file"]["tmp_name"]),mysql_query("SET NAMES 'utf8'"),编码转换防止中文在数据库中显示乱码: 以下是主要的源代码: 1 header("Con

PHPExcel读取excel文件示例

PHPExcel的类库下载地址:  https://github.com/PHPOffice/PHPExcel 转载自: http://www.imhdr.com/1332/comment-page-1/ PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子.Xiaoqiang根据网上的资料,整理了一份简单读取Excel文件的例子.传统方法: <?php /** * * @copyright 2

PHPExcel读取Excel文件的实现代码

<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianToJD(1, 1, 1970); $gregorian = JDToGregorian($jd+intval($val)-25569); return $gregorian;/**显示格式为 “月/日/年” */ } $filePath = 'test.xlsx'; $PHPExcel = new PHP

thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片

<?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文件类型 protected $allowFileType; public function _initialize(){ parent::_initialize(); $this->savepath = './xxx/'.date('Ymd').'/'; $this->allowFileType

ThinkPHP3.2.3 PHPExcel读取excel插入数据库

版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; 代码: 代码主要在index方法中,有数据提交则写入数据库,否则展示表单 1 <?php 2 namespace Home\Controll

Java读取excel(兼容03和07格式)

读取excel,首先需要下载POI的jar,可以去官网下,也可以在这里下载 一.简单说明 excel2003和excel2007区别比较大,最直观的感受就是扩展名不一样,哈哈 不过,使用POI的API都是面向接口编程的,实际使用起来区别其实不大(知道为什么要面向接口编程了吗?好处就在这里,O(∩_∩)O哈哈~) 代码最直观,直接看代码 二.范例 package com.hundsun.excel.test; import java.io.File; import java.io.FileInpu

java 读取excel 正常 xls

package com.sun.test; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.u

java使用poi.3.10读取excel 2003 (xls格式)

最近在做一个Excel导入数据库的案例,整理文档出来供大家参考. 1.下载 最新的 poi http://poi.apache.org/download.html 2.解压 把相关jar包引进项目 3.案例源码 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import org.apa