PHP 利用PHPExcel 文件导入(也可保存到本地或者服务器)、导出

首先需要去官网http://www.php.cn/xiazai/leiku/1491,下载后只需要Classes目录下的文件即可。

1、PHPExcel导出方法实现过程


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

/**

 * 数据导出

 * @param array $title   标题行名称

 * @param array $data   导出数据

 * @param string $fileName 文件名

 * @param string $savePath 保存路径

 * @param $type   是否下载  false--保存   true--下载

 * @return string   返回文件全路径

 * @throws PHPExcel_Exception

 * @throws PHPExcel_Reader_Exception

 */

function exportExcel($title=array(), $data=array(), $fileName=‘‘, $savePath=‘./‘, $isDown=false){ 

    include(‘PHPExcel.php‘); 

    $obj = new PHPExcel(); 

  

    //横向单元格标识 

    $cellName = array(‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘, ‘H‘, ‘I‘, ‘J‘, ‘K‘, ‘L‘, ‘M‘, ‘N‘, ‘O‘, ‘P‘, ‘Q‘, ‘R‘, ‘S‘, ‘T‘, ‘U‘, ‘V‘, ‘W‘, ‘X‘, ‘Y‘, ‘Z‘, ‘AA‘, ‘AB‘, ‘AC‘, ‘AD‘, ‘AE‘, ‘AF‘, ‘AG‘, ‘AH‘, ‘AI‘, ‘AJ‘, ‘AK‘, ‘AL‘, ‘AM‘, ‘AN‘, ‘AO‘, ‘AP‘, ‘AQ‘, ‘AR‘, ‘AS‘, ‘AT‘, ‘AU‘, ‘AV‘, ‘AW‘, ‘AX‘, ‘AY‘, ‘AZ‘); 

      

    $obj->getActiveSheet(0)->setTitle(‘sheet名称‘);   //设置sheet名称 

    $_row = 1;   //设置纵向单元格标识 

    if($title){ 

        $_cnt = count($title); 

        $obj->getActiveSheet(0)->mergeCells(‘A‘.$_row.‘:‘.$cellName[$_cnt-1].$_row);   //合并单元格 

        $obj->setActiveSheetIndex(0)->setCellValue(‘A‘.$_row, ‘数据导出:‘.date(‘Y-m-d H:i:s‘));  //设置合并后的单元格内容 

        $_row++; 

        $i = 0; 

        foreach($title AS $v){   //设置列标题 

            $obj->setActiveSheetIndex(0)->setCellValue($cellName[$i].$_row, $v); 

            $i++; 

        

        $_row++; 

    

  

    //填写数据 

    if($data){ 

        $i = 0; 

        foreach($data AS $_v){ 

            $j = 0; 

            foreach($_v AS $_cell){ 

                $obj->getActiveSheet(0)->setCellValue($cellName[$j] . ($i+$_row), $_cell); 

                $j++; 

            

            $i++; 

        

    

      

    //文件名处理 

    if(!$fileName){ 

        $fileName = uniqid(time(),true); 

    

  

    $objWrite = PHPExcel_IOFactory::createWriter($obj, ‘Excel2007‘); //这里Excel2007 可能会报错 如果报错改成 Excel5 再试

  

    if($isDown){   //网页下载 

        header(‘pragma:public‘); 

        header("Content-Disposition:attachment;filename=$fileName.xls"); 

        $objWrite->save(‘php://output‘);exit

    

  

    $_fileName = iconv("utf-8", "gb2312", $fileName);   //转码 

    $_savePath = $savePath.$_fileName.‘.xlsx‘

     $objWrite->save($_savePath); 

  

     return $savePath.$fileName.‘.xlsx‘

  

//$this->exportExcel(array(‘姓名‘,‘年龄‘), array(array(‘a‘,21),array(‘b‘,23)), ‘档案‘, ‘./‘, true);

2、PHPExcel导入方法实现过程


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

/**

*  数据导入

* @param string $file excel文件

* @param string $sheet

 * @return string   返回解析数据

 * @throws PHPExcel_Exception

 * @throws PHPExcel_Reader_Exception

*/

function importExecl($file=‘‘, $sheet=0){ 

    $file = iconv("utf-8", "gb2312", $file);   //转码 

    if(empty($file) OR !file_exists($file)) { 

        die(‘file not exists!‘); 

    

    include(‘PHPExcel.php‘);  //引入PHP EXCEL类 

    $objRead = new PHPExcel_Reader_Excel2007();   //建立reader对象 

    if(!$objRead->canRead($file)){ 

        $objRead = new PHPExcel_Reader_Excel5(); 

        if(!$objRead->canRead($file)){ 

            die(‘No Excel!‘); 

        

    

  

    $cellName = array(‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘, ‘H‘, ‘I‘, ‘J‘, ‘K‘, ‘L‘, ‘M‘, ‘N‘, ‘O‘, ‘P‘, ‘Q‘, ‘R‘, ‘S‘, ‘T‘, ‘U‘, ‘V‘, ‘W‘, ‘X‘, ‘Y‘, ‘Z‘, ‘AA‘, ‘AB‘, ‘AC‘, ‘AD‘, ‘AE‘, ‘AF‘, ‘AG‘, ‘AH‘, ‘AI‘, ‘AJ‘, ‘AK‘, ‘AL‘, ‘AM‘, ‘AN‘, ‘AO‘, ‘AP‘, ‘AQ‘, ‘AR‘, ‘AS‘, ‘AT‘, ‘AU‘, ‘AV‘, ‘AW‘, ‘AX‘, ‘AY‘, ‘AZ‘); 

  

    $obj = $objRead->load($file);  //建立excel对象 

    $currSheet = $obj->getSheet($sheet);   //获取指定的sheet表 

    $columnH = $currSheet->getHighestColumn();   //取得最大的列号 

    $columnCnt = array_search($columnH, $cellName); 

    $rowCnt = $currSheet->getHighestRow();   //获取总行数 

  

    $data = array(); 

    for($_row=1; $_row<=$rowCnt; $_row++){  //读取内容 

        for($_column=0; $_column<=$columnCnt; $_column++){ 

            $cellId = $cellName[$_column].$_row

            $cellValue = $currSheet->getCell($cellId)->getValue(); 

             //$cellValue = $currSheet->getCell($cellId)->getCalculatedValue();  #获取公式计算的值 

            if($cellValue instanceof PHPExcel_RichText){   //富文本转换字符串 

                $cellValue = $cellValue->__toString(); 

            

  

            $data[$_row][$cellName[$_column]] = $cellValue

        

    

  

    return $data

}

原文地址:https://www.cnblogs.com/liangzia/p/9964027.html

时间: 2025-01-17 14:44:58

PHP 利用PHPExcel 文件导入(也可保存到本地或者服务器)、导出的相关文章

下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片

将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 #region 图片下载[使用流.WebRequest进行保存] 4 /// <summary> 5 /// 图片下载[使用流.WebRequest进行保存] 6 /// </summary> 7 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video

使用URLConnection下载文件或图片并保存到本地

有时候需要从网络上面下载图片到本地进行保存,代码如下: package com.jointsky.jointframe.test; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; /** * 使用URLConnection下载文件或图片并保存到本地. * * @a

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api. DATA ls_appl_object TYPE gos_s_obj. DATA lo_gos_api TYPE REF TO cl_gos_api. DATA lt_attachment_list TYPE gos_t_atta. DATA lt_role_filter TYPE gos_t_rol. DATA: lv_

EXCEL文件导入时报_未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序

解决办法: 解决访问Excel数据源时出现 未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序1.确保安装了Microsoft.ACE.OLEDB.12.0驱动 http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe2.在vs中右击项目-->属性-->生成 下的 目标平台 改为x86 如果以上两个方法还是不行的话

oracle数据库备份、还原 (如何将Oracle 11g备份的dat文件导入到10g数据库里面)

如何将Oracle 11g备份的dat文件导入到10g数据库里面 解决方法: 导出的时候后面加上目标数据库的版本号 导出: 在SQL plus下执行:create or replace directory file_path as 'E:\';--创建导出\导入文件存放路径(我的是放在E盘) 在cmd里面执行:expdp 用户名/密码@服务命名  directory=file_path dumpfile=导出数据库文件名.dat  schemas=用户名 logfile=baklog.log  

php利用PHPExcel类导出导入Excel用法

PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介绍了). 导出Excel用法 //设置环境变量(新增PHPExcel) 1 set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . 2 3 get_include_p

基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后,进行请求后端,读取数据,后端接口对应将附件数据读取出来,前端进行显示(ajax请求): 4.前端展示数据,用户对数据检测无误,点击保存(ajax请求后端保存代码的接口),当然也可以有选择性的选择某些数据记录进行保存,楼主这里做的是全部保存(后端处理接口,自动过滤重复数据): 5.拿到对应的所需有用数

Docker镜像保存为文件及从本地文件导入镜像的方法

1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍. 如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择. 可以使用Docker save和Docker load命令来存储和载入镜像. 2.保存

oracle_利用ctl文件实现批量导入

利用oracle控制文件实现大批量数据的入库操作,效率比sql脚本文件要高很多. 使用ctl控制文件步骤如下: 1. 制作ctl文件 test.ctl load   data infile   'd:\test.txt'   --数据文件,数据源文件 append   into   table   table_name --数据文件导入的目标表 Fields terminated by "@[email protected]"   --字段分隔符,建议以特殊字符作为字段分隔符 Opti