利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_php技巧

来源:脚本之家  责任编辑:小易  

.这个都不用任何其他插件。提示 xlsx(目前的excel文件版本)是xml格式的简单了不,查询数据生成obj 然后simple_xml序列化下 都能被execel打开www.zgxue.com防采集请勿采集本网。

很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题。

1、首先打开EXCEL表格,里面有两个EXCEL文档。2、然后我们点击EXCEL文档后面如图图标,插入一个新的EXCEL表格。3、将插入的这个表格命名为合并。4、然后将光标放到这个EXCEL文档的位置,右键单击

首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用正确进行测试。

1.根据身份证号码计算虚岁(当前年份-出生年份): YEAR(TODAY())-MID(C6,7,4) 2.根据身份证号码计算周岁(实足年龄): DATEDIF(D6,TODAY(),\"Y\") 3.从身份证号码中提取出生日期: TEXT(MID(C6,7

(一)导入Excel

1、首先将百分部工程的内容和月进度报表的日期编辑好。2、完成后整体加入格子,并将全部文字居中排版。3、侧度面长按鼠标框选需要调整的区域,设置行高,上部框选区域设置列宽。4、将日期和分部

第一,在前台html页面进行上传文件:如:

要对两列数据进行统计,以获得两列数据间的回归方程啊。比如你的数据为两列,A列和B列,其中,A列为自变量X,B列为应变量Y。选中A、B列的数据区域,插入→图表,选择散点图,完成。选择图表中的

复制代码 代码如下:

你可以用一下下面的公式: SUMIF(B:B,\"男\",C:C)/COUNTIF(B:B,\"男\") 我先解答一下: 第一:SUMIF(B:B,\"男\",C:C) 这个是求所有男生的成绩总和。第二:COUNTIF(B:B,\"男\") 这个是求所有男生的个数。别用

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

         <h3>导入Excel表:</h3><input  type="file" name="file_stu" />

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

</form>

第二,在对应的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 ( '导入数据库失败' );

          }

      }

   }

}

第三: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;

    }    

 }

第四,以上就是导入的全部内容,phpExcel包附在最后。

(二)Excel的导出(相对于导入简单多了)

第一,先查出数据库里面要生成Excel的数据,如:

$data= M('User')->findAll();   //查出数据

$name='Excelfile';    //生成的Excel文件文件名

$res=service('ExcelToArrary')->push($data,$name);

第二,ExcelToArrary类,用来引用phpExcel并处理数据的   

复制代码 代码如下:

class ExcelToArrary extends Service{

       public function __construct() {

              /*导入phpExcel核心类    注意 :你的路径跟我不一样就不能直接复制*/

               include_once('./Excel/PHPExcel.php');

       }

     /* 导出excel函数*/

    public function push($data,$name='Excel'){

          error_reporting(E_ALL);

          date_default_timezone_set('Europe/London');

         $objPHPExcel = new PHPExcel();

        /*以下是一些设置 ,什么作者  标题啊之类的*/

         $objPHPExcel->getProperties()->setCreator("转弯的阳光")

                               ->setLastModifiedBy("转弯的阳光")

                               ->setTitle("数据EXCEL导出")

                               ->setSubject("数据EXCEL导出")

                               ->setDescription("备份数据")

                               ->setKeywords("excel")

                              ->setCategory("result file");

         /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/

        foreach($data as $k => $v){

             $num=$k+1;

             $objPHPExcel->setActiveSheetIndex(0)

                         //Excel的第A列,uid是你查出数组的键值,下面以此类推

                          ->setCellValue('A'.$num, $v['uid'])   

                          ->setCellValue('B'.$num, $v['email'])

                          ->setCellValue('C'.$num, $v['password'])

            }

            $objPHPExcel->getActiveSheet()->setTitle('User');

            $objPHPExcel->setActiveSheetIndex(0);

             header('Content-Type: application/vnd.ms-excel');

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

             header('Cache-Control: max-age=0');

             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

             $objWriter->save('php://output');

             exit;

      }

第三,以上就是导出的全部内容,phpExcel包附在最后。

可以使用excel插件,这个相对复杂。说个非常简单的,一般ecel文件可以保存成为csv文件,然后你就可以进行csv的文件处理。csv的组成一般是col1,col2,col3col12,col22,col33可见,只要使用explode 两次就可以得到一个arrayarray(ccol1,col2,col3),array(col12,col22,col33);二维数组,然后批量导入这个二维数组就很简单了。导出是一样的额,写入一个,想办法把取出的数据构造成col1,col2,col3col12,col22,col33这样的字符串,然后使用header函数即可导出csv文件,csv可以使用excel直接打开纯手打,望采纳!内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • php读取excel内的图片(phpspreadsheet和phpexcel扩展库)
  • phpexcel读取excel文件的实现代码
  • php导入excel到mysql的方法
  • php读取excel文件 php excelreader读取excel文件
  • php导入导出excel实例
  • thinkphp使用phpexcel实现excel数据导入导出完整实例
  • php中使用phpexcel读写excel(xls)文件的方法
  • php生成excel文件的简单方法
  • phpexcel导出大量数据出现内存溢出错误的解决方法
  • php中导出数据到excel时数字变为科学计数的解决方法
  • php上传excel文件导入数据到mysql数据库示例
  • 基于phpexcel的常用方法总结
  • php使用phpspreadsheet操作excel实例详解
  • php使用两个栈实现队列功能的方法
  • php使用curl模拟多线程实现批处理功能示例
  • php 函数call_user_func和call_user_func_array用法详解
  • php打包压缩文件之ziparchive方法用法分析
  • php 中self,this的区别和操作方法实例分析
  • php常用的缓存技术汇总
  • php计算两个文件相对路径的方法
  • php ios推送(代码)
  • 解析php中如何直接执行shell
  • php计算数组不为空元素个数的方法
  • 怎么写一个php能实现上传excel并导入进mysql呢?还有怎么从mysql导出进一个新的exc
  • 请问php怎样实现将查询的数据导出到excel?用php代码如何写呢?貌似是一个按钮点击导出exc
  • php读取excel,excel下多个个工作表,该怎么读取
  • EXCEL里如何做到隔行复制和隔行粘贴?
  • 怎么把两个EXCEL文档合成一个
  • excel表的表格怎么利用身份证号码算出年龄
  • 如何利用excel自动生成施工进度计划横道图
  • 如何利用EXCEL找到两组数据之间的函数对应关系
  • excel中如何利用sumif函数计算,如图,如何求出一组平均成绩
  • 怎样利用excel电子表格做库存管理
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php技巧php读取excel内的图片(phpspreadsheet和phpexcel扩展库)phpexcel读取excel文件的实现代码php导入excel到mysql的方法php读取excel文件 php excelreader读取excel文件php导入导出excel实例thinkphp使用phpexcel实现excel数据导入导出完整实例php中使用phpexcel读写excel(xls)文件的方法php生成excel文件的简单方法phpexcel导出大量数据出现内存溢出错误的解决方法php中导出数据到excel时数字变为科学计数的解决方法php上传excel文件导入数据到mysql数据库示例基于phpexcel的常用方法总结php使用phpspreadsheet操作excel实例详解php使用两个栈实现队列功能的方法php使用curl模拟多线程实现批处理功能示例php 函数call_user_func和call_user_func_array用法详解php打包压缩文件之ziparchive方法用法分析php 中self,this的区别和操作方法实例分析php常用的缓存技术汇总php计算两个文件相对路径的方法php ios推送(代码)解析php中如何直接执行shellphp计算数组不为空元素个数的方法php中json_decode()和json_encodphp 数组和字符串互相转换实现方php中使用curl实现get和post请求php中iconv函数使用方法php日期转时间戳,指定日期转换成php 页面跳转到另一个页面的多种php中文处理 中文字符串截取(mb_php下intval()和(int)转换使用与利用phpexcel实现excel数据的导入phpmyadmin 配置文件详解(配置)php 输出简单动态wap页面php命令command模式用法实例分析php模拟asp中的xmlhttprequest实现http请wordpress中登陆后关闭登陆页面及设置用户php面向对象重点知识分享php实现动态获取函数参数的方法示例thinkphp框架中d方法与m方法的区别php持久连接mysql_pconnect()函数使用介绍php实现对数组分页处理实例详解php开发的一些注意点总结
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved