使用phpExcel实现Excel数据的导入导出(完全步骤)

fastadmin中使用phpExcel导出表格数据到excel中 虽然说fastadmin中表格自带导出excel,但是那个东西忒不好用了,每次点击导出,就刷新表格,默认最近七天的数据,所以无奈之下只好另寻办法了,废话不多说,接下来说一下phpExcel的使用: 一,下载phpExcel git clone https://github.com/PHPOffice/PHPExcel 完成之后会出现以下以下的文件夹 这个被更名的文件夹内部目录如下: 二,把上图圈住的那个PHPExcel文件夹拷贝到你的项目中 三,在你的控制器中添加导出方法... 阅读详情

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

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

(一)导入Excel

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

<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包附在最后。

       我的优快云下载地址,不需要积分http://download.youkuaiyun.com/detail/tsunlight/4124415

使用 PHPExcel 将数据导入数据库 假设我们要导入的数据包含在名为 “data.xlsx” 的 Excel 文件中,并且我们有一个名为 “users” 的数据库表,其中包含 “name” 和 “email” 列。您可以使用 PHPExcel 将 Excel 文件中的数据导入到数据库中,以便进行进一步的处理或分析。通过遵循上述步骤,您可以轻松地将 Excel 文件中的数据导入到数据库中,并进一步处理或分析这些数据。如果一切顺利,您将看到一个成功的消息,并且数据将被导入到数据库中。此外,根据您的实际情况,您可能需要调整列的索引(例如, 阅读详情

相关推荐

PHPExcel:PHP操作Excel的完全指南

本文还有配套的精品资源,点击获取 简介: phpexcel 库让PHP开发者可以轻松读写Excel文件,无需外部软件转换。本文详细介绍了如何安装、创建、读取、写入以及处理复杂Excel数据,包括合并单元格、工作表管理、数据验证和性能优化。该库支持 .xls 和 .xlsx 格式,提供丰富的API以及内存和性能优化技巧,是数据导入导出...

weixin_42584758的博客 3547

PHPExcel 表格导入数据

PHPExcel导入数据

码农挚友的博客 573

视频倍速 - 在线调倍速的加速器APP工具

一刀工具箱APP提供一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!视频倍速-在线调倍速的加速器-一刀工具箱APP。...

无涯教程 7555

使用PHP技术导入Excel文件的技术指南

在这篇文章中,我们将详细介绍如何使用PHP技术来导入Excel文件,以便您可以从外部源(如电子表格)中提取和处理数据。导入Excel数据在Web应用程序中是一个常见任务,这篇文章将为您提供完整的代码示例,以便您能够轻松地执行这一任务。

理论都是虚的,代码才是王道。 1145

linux CentOS7安装VCS、Verdi、SCL

1.Linux下所需安装文件 链接:https://pan.baidu.com/s/1E_l4ARFYEnp57jlX95Bpog 提取码:ggdz ​ synopsysinstaller_v5.0 ​ scl_v2018.06 ​ vcs_mx_vO-2018.09-SP2 ​ vcs_vO-2018.09-SP2 ​ verdi-2018.9 2.Windows破解文件 ​ scl_keygen_2030 3.安装installer 打开终端,进入synopsysinstaller_

loveyelong的博客 4620

APB Timer验证环境搭建——学习笔记(1)

以下为个人学习笔记,如有疏漏,请大家指正补充~~APB Timer是一个简单的下行计数器,包括一个32位计数器和一组比较器,可以实现多种计时功能。包括生成一次性中断或者定时中断。

qq_41651535的博客 1578

PHPExcel导入导出操作总结

目录一、安装二、导入操作1、实例化读取类2、读取文件3、获取工作表4、获取总行数5、获取单元格的值6、时间格式转换三、导出操作1、实例化Excel类2、设置excel的属性2、选择工作表3、单元格操作4、导出Excel使用composer将 PhpSpreadsheet 安装到您的项目中: 如果您在开发机器上构建安装,而该开发机器与将要部署它的服务器的 PHP 版本不同,或者如果您的 PHP CLI 版本与运行时不同,例如 Apache的 ,那么您可能需要在安装之前将以下内容添加到您的: 然后运

创作不易,请多支持,将为本站提供更多「有价值的文章」。 1万+

Mplus实战:随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用

本文深入探讨了随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用,通过Mplus实战演示了模型设定、结果解读及进阶建模策略。RI-CLPM能有效区分个体间差异和个体内变化,适用于追踪青少年手机使用与抑郁症状等研究。文章还提供了样本量规划、模型比较和结果可视化等实用技巧,助力研究者避免常见陷阱。

weixin_29220405的博客 369

php表单导入导出,使用phpExcel实现Excel数据的导入导出(完全步骤)

很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题。首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错...

weixin_39705065的博客 223

把个人化的 SQVI 报表变成可维护、可共享、可传输的 ABAP Query:从定位来源到转换落地的完整路线图

本文针对SAP系统中业务用户常用但难以维护的SQVI临时报表问题,提供了一套完整的解决方案。文章首先区分了SQVI(个人临时报表)和ABAP Query(团队可维护报表)的关键差异,重点介绍了如何通过函数模块RSAQ_DECODE_REPORT_NAME反查报表来源。对于SQVI报表,详细说明了定位创建人和转换为团队可维护的ABAP Query的具体步骤,包括Query Area切换、转换操作和后续维护方法。最后总结了常见问题的解决方案,如字段调整、口径固化和生成程序名反查等,为现场实施提供了可直接操作的完

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

GEE:基于 Landsat 数据集生成(1986-2024)月度合成地表温度(LST)时间序列数据

优快云@_养乐多_本文将介绍使用 Landsat 时间序列计算(1986-2024)月度合成地表温度(LST)时间序列数据集的代码。

养乐多的博客 1712

ThinkPHP使用phpExcel实现Excel数据的导入导出(真正的完全步骤)

2012-06-08 21:55 ThinkPHP使用phpExcel实现Excel数据的导入导出(真正的完全步骤) 昨日用phpExcel做Excel数据导入mysql,网上找一些材料,发现了这个 http://blog.youkuaiyun.com/tsunlight/article/details/7409166 写的很好,但是作者因为高估了我们这些菜菜的能力,写得比较含糊,本人走了不少弯

一万亿 2万+

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

phpExcel实现Excel数据的导入导出(全步骤详细解析)

一,Excel文件上传,返回数组 (引入类文件) //添加excel     public function addExcel() { //接收前台文件 $ex = $_FILES['excel']; //重设置文件名 $filename = time().substr($ex['name'],strip

longjef的博客 3万+

orchestrator常见问题汇总

默认的取集群名称的规则为参数决定 ,默认为取主实例 主机名 ,然后按分隔符"."之前的第一段字符为集群别名,这样在集群主库宕机后,新提升的从库的服务器名称为了新的集群名,宕机的主库成为单独的一个集群。1 默认配置文件中设置了匹配规则 ,只有被匹配的主机名才能进行故障恢复,所以该参数需要设置为 "*"3 另外配置文件中还有许多发现,恢复的忽略规则(Ignore) 这些参数也是需要注意的。由于LVS的后端的RS为IP地址,如果直接显示主机名,LVS的接口方法将无法工作。只传入脚本中用到的参数,不要多传入。

DBA之路的博客 829

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

laravel框架利用phpExcel实现Excel数据的导入导出

所需要的phpexcel的类在vendor中 导入excel 前端: <form id="xml_config_search" action="upload" method="post" enctype="multipart/form-data"> {{ csrf_field() }} 选择文件:<input type="file" name="fi...

dabao87的博客 1705

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ThinkPHP使用phpExcel实现Excel数据的导入导出

很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题。 首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用

manito_y的专栏 921

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PHPExcel 导出 Excel表格中 详细步骤!!!

1. 通过composer下载Excel表格的thinkPHP扩展 composer require phpoffice/phpexcel 下载到了vender/phpoffice/phpexcel 2.下载完成后有一个phpoffice 文件夹 . 3. 把 Classes 文件夹 重命名 成 PHPExcel . 4. 修改后 只要这三个文件夹 其他的...

可爱的狼 6926

ThinkPHP5.1使用PHPExcel进行数据的导入导出

本文已在本人博客https://www.nsxsg.com/archives/192首发 文章目录ThinkPHP5.1使用PHPExcel进行数据的导入导出安装PHPExcel导入数据导出数据 ThinkPHP5.1使用PHPExcel进行数据的导入导出 安装PHPExcel 进入项目目录,使用composer安装PHPExcel composer require phpoffice/p...

Web开发 3182
下一篇: 在thinkphp中批量生成Word并压缩打包下载
转弯的阳光
博客等级 码龄16年 10粉丝 1原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值