PHP excel读取excel文件转换为数组

/*备注:先去下载PHP EXCEL——http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&DownloadId=809023&FileTime=130382506270130000&Build=20907*/

/*
* 将excel转换为数组 by aibhsc
* */
require(ROOT_PATH . ‘includes/PHPExcel.php‘);//引入PHP EXCEL类
function format_excel2array($filePath=‘‘,$sheet=0){
        if(empty($filePath) or !file_exists($filePath)){die(‘file not exists‘);}
        $PHPReader = new PHPExcel_Reader_Excel2007();        //建立reader对象
        if(!$PHPReader->canRead($filePath)){
                $PHPReader = new PHPExcel_Reader_Excel5();
                if(!$PHPReader->canRead($filePath)){
                        echo ‘no Excel‘;
                        return ;
                }
        }
        $PHPExcel = $PHPReader->load($filePath);        //建立excel对象
        $currentSheet = $PHPExcel->getSheet($sheet);        //**读取excel文件中的指定工作表*/
        $allColumn = $currentSheet->getHighestColumn();        //**取得最大的列号*/
        $allRow = $currentSheet->getHighestRow();        //**取得一共有多少行*/
        $data = array();
        for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){        //循环读取每个单元格的内容。注意行从1开始,列从A开始
                for($colIndex=‘A‘;$colIndex<=$allColumn;$colIndex++){
                        $addr = $colIndex.$rowIndex;
                        $cell = $currentSheet->getCell($addr)->getValue();
                        if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
                                $cell = $cell->__toString();
                        }
                        $data[$rowIndex][$colIndex] = $cell;
                }
        }
        return $data;
}

使用方法:
                        $filePath = ROOT_PATH.‘data/diamondStock.xlsx‘;        //钻石库存文件
                        $data = format_excel2array($filePath);
                        print_r($data);die;

输出结果示例:

Array
(
    [1] => Array
        (
            [A] => 商品编号
            [B] => 商品名称
            [C] => 总重量
            [D] => 进货价格
            [E] => 销售价格
            [F] => 4C备注
        )

    [2] => Array
        (
            [A] => 10001
            [B] => GIA-2156685995
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [3] => Array
        (
            [A] => 10002
            [B] => GIA-2156685996
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [4] => Array
        (
            [A] => 10003
            [B] => GIA-2156685997
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [5] => Array
        (
            [A] => 10004
            [B] => GIA-2156685998
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [6] => Array
        (
            [A] => 10005
            [B] => GIA-2156685999
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [7] => Array
        (
            [A] => 10006
            [B] => GIA-2156686000
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [8] => Array
        (
            [A] => 10007
            [B] => GIA-2156686001
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [9] => Array
        (
            [A] => 10008
            [B] => GIA-2156686002
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [10] => Array
        (
            [A] => 10009
            [B] => GIA-2156686003
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [11] => Array
        (
            [A] => 10010
            [B] => GIA-2156686004
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [12] => Array
        (
            [A] => 10011
            [B] => GIA-2156686005
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [13] => Array
        (
            [A] => 10012
            [B] => GIA-2156686006
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

    [14] => Array
        (
            [A] => 10013
            [B] => GIA-2156686007
            [C] => 0.7
            [D] => 1760
            [E] => 1848
            [F] => G色、0.7ct、SI1、FR
        )

)
时间: 2024-10-26 08:42:49

PHP excel读取excel文件转换为数组的相关文章

服务器不装Excel读取Excel并转换DataTable

原来是用OleDb.4.0组件读取Excel,但是放到服务器后 傻了,服务器没装Excel ,而且领导说不可以装 没办法,只好自己重新找下代码 在CodeProject找到一个开源的dll,一阵欢喜啊,虽然是winform项目,但是主要是用他的类库所以提取一下后 自己研究后重新封装了一个类,运行 耶! 完美支持 需要Dome的同学下载后去研究下吧 地址:http://download.csdn.net/detail/jine515073/7266371 本人用 Excel 97-2003 工作表

c#读取 txt文件存到数组里面

using System; using System.Collections.Generic; using System.Linq; using System.IO; namespace ConsoleApplication1 {     class Program     {         static void Main(string[] args)         {                          StreamReader rd = File.OpenText("da

将文件转换为数组保存在内存中

#include <stdio.h> #include <stdlib.h> int main() { FILE *image = fopen("big_face.yuv", "r"); if(NULL == image) { printf("open file failed!"); return 0; } fseek(image, 0, SEEK_END); int nFileLen = ftell(image); re

Java 读取Excel格式xls、xlsx数据工具类

需要POI的jar包支持 调用方式: ReadExcelTest excelTest = new ReadExcelTest(); excelTest.readExcel("D:\\data1.xlsx"); package com.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; imp

asp.net mvc Dateset读取Excel数据

//处理Excel //读取Excel [NonAction] public static DataSet ExcelToDS(string Path) { //根据情况选择合适的连接字符,参考msdn string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;&q

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

PHP中simpleXML递归实现XML文件与数组的相互转化(原创)

一.XML文件转换为数组<?php /*******************************************************/ //simpleXML  解析XML文件非常简单 //因为它一次性把XML文件解析成一个大对象 //来个简单的实例 /************************************************ //从文件载入XML文档 //$simxml  =  simplexml_load_file('book.xml'); //prin

php读取excel,以及php打包文件夹为zip文件

1.把文件下载到本地,放在在Apache环境下2.d.xlsx是某游戏的服务器名和玩家列表,本程序只适合此种xlsx文件结构,其他结构请修改index.php源码3.访问zip.php的功能是把生成的files文件夹打包成files.zip4.访问index.php即可生成files文件夹,里面0.js---n.js 分别存放各个服务器人名,server_name_list.js存放服务器列表.5.Classes 存放的是php读取excel的功能模块,具体任务逻辑都在index.php A.P

使用poi读取Excel文件数据

除分数被转换为小数存储外,其他数据经本人测试无问题,如发现问题请留言,方便及时更新 package com.haiyisoft.iecp.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat;