您的位置:

php上传解析excel(php接收上传的文件)

本文目录一览:

利用php导入excel文件

【步骤1】在前台html页面进行上传文件

form method="post" action="php文件" enctype="multipart/form-data" 

h3导入Excel表:/h3input  type="file" name="file_stu" /

input type="submit"  value="导入" /

/form

【步骤2】在对应的php文件进行文件的处理

 if (! empty ( $_FILES ['file_stu'] ['name'] ))

 {    $tmp_file = $_FILES ['file_stu'] ['tmp_name'];    $file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );    $file_type = $file_types [count ( $file_types ) - 1];

     /*判别是不是.xls文件,判别是不是excel文件*/     if (strtolower ( $file_type ) != "xls")                  {          $this-error ( '不是Excel文件,重新上传' );     }

    /*设置上传路径*/     $savePath = SITE_PATH . '/public/upfile/Excel/';

    /*以时间来命名上传的文件*/     $str = date ( 'Ymdhis' );      $file_name = $str . "." . $file_type;

     /*是否上传成功*/     if (! copy ( $tmp_file, $savePath . $file_name ))       {          $this-error ( '上传失败' );      }

    /*

*对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中

注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入

    */  $res = Service ( 'ExcelToArray' )-read ( $savePath . $file_name );

   /*

重要代码 解决Thinkphp M、D方法不能调用的问题

如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码

*/

 //spl_autoload_register ( array ('Think', 'autoload' ) );

/*对生成的数组进行数据库的写入*/

foreach ( $res as $k = $v )    {       if ($k != 0)       {           $data ['uid'] = $v [0];           $data ['password'] = sha1 ( '111111' );           $data ['email'] = $v [1];

           $data ['uname'] = $v [3];

          $data ['institute'] = $v [4];         $result = M ( 'user' )-add ( $data );         if (! $result)          {              $this-error ( '导入数据库失败' );          }      }   }

}

【步骤3】ExcelToArrary类,用来引用phpExcel并处理Excel数据的

class ExcelToArrary extends Service{

 public function __construct() {

     /*导入phpExcel核心类    注意 :你的路径跟我不一样就不能直接复制*/     include_once('./Excel/PHPExcel.php'); }

/**

* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8

*以下基本都不要修改

*/

public function read($filename,$encode='utf-8'){

          $objReader = PHPExcel_IOFactory::createReader('Excel5');

          $objReader-setReadDataOnly(true);

          $objPHPExcel = $objReader-load($filename);

          $objWorksheet = $objPHPExcel-getActiveSheet();

  $highestRow = $objWorksheet-getHighestRow();   $highestColumn = $objWorksheet-getHighestColumn();     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);     $excelData = array();   for ($row = 1; $row = $highestRow; $row++) {       for ($col = 0; $col  $highestColumnIndex; $col++) {                  $excelData[$row][] =(string)$objWorksheet-getCellByColumnAndRow($col, $row)-getValue();           }          }         return $excelData;

    }

}

php怎么读取excel 文件数据并输出

PHPExcel

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

PHP读取示例代码

//获取上传的excel临时文件

$path = $_FILES["file"]["tmp_name"];

//将临时文件移动当前目录,可自定义存储位置

 

move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);

//将获取在服务器中的Excel文件,此处为上传文件名

$path = $_FILES["file"]["name"];

//调用readExcel函数返回一个

二维数组

$exceArray = readExcel($path);

 

//创建一个读取

excel函数

function readExcel($path){

        //引入PHPExcel类库

    include 'Classes/PHPExcel.php';            

    include 'Classes/PHPExcel/IOFactory.php';

 

    $type = 'Excel5';//设置为Excel5代表支持2003或以下版本,

Excel2007代表2007版

    $xlsReader = \PHPExcel_IOFactory::createReader($type);  

    $xlsReader-setReadDataOnly(true);

    $xlsReader-setLoadSheetsOnly(true);

    $Sheets = $xlsReader-load($path);

    //开始读取上传到服务器中的Excel文件,返回一个

二维数组

    $dataArray = $Sheets-getSheet(0)-

toArray();

    return $dataArray;

}

php 读取excel

第一个是PHPExcelReader,另外一个是PHPExcel。

PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)。

PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。

下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:

1

2

3

4

5

6

require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php'; //修改为自己的目录

echo 'pTEST PHPExcel 1.8.0: read xlsx file/p';

$objReader = PHPExcel_IOFactory::createReaderForFile($filename);

$objPHPExcel = $objReader-load($filename);

$objPHPExcel-setActiveSheetIndex(1);

$date = $objPHPExcel-getActiveSheet()-getCell('A16')-getValue();

输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。如何通过Sheet名来获得当前Sheet我还不知道,如果有知道的可以站内我。

需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。

echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));

下面的代码显示了如何遍历显示Excel的内容:

1 table id="table_id"

2 ?php

3 $objWorksheet = $objPHPExcel-getActiveSheet();

4 $i = 0;

5 foreach($objWorksheet-getRowIterator() as $row){

6 ?

7 tr

8 ?php

9 $cellIterator = $row-getCellIterator();

10 $cellIterator-setIterateOnlyExistingCells(false);

11

12 if( $i == 0 ){

13 echo 'thead';

14 }

15 foreach($cellIterator as $cell){

16

17 echo 'td' . $cell-getValue() . '/td';

18

19 }

20 if( $i == 0 ){

21 echo '/thead';

22 }

23 $i++;

24 ?

25 /tr

26 ?php

27 }

28 ?

29 /table

php上传excel文件,如何读取文件中的信息?

告诉你一个思路,

简单归纳如下三个部分即可实现 .

////存储的部分

?

if($_FILE[文件名])

{

$destFilename=指定目录/文件名;

copy($_FILE[文件名],$destFilename);

}

?

?

//php读出部分,

这里可以有多个.如果是图片文件的,可以直接使用HTML的IMG src=相对URI图片路径标记

//如果是其它如WORD/EXCEL/PDF这类的.你就要用一个IFRAME src=文件 高/宽设定

?

//////////上传的部分

form method="POST"

input type=file name=文件变量

input type=submit

/form