zoukankan      html  css  js  c++  java
  • PHPExcel的使用

    1.当然是下载PHPexcel的插件了    http://phpexcel.codeplex.com/

    2.应用插件 我把插件和需要用到的excel模板放的是不同文件夹的,excel我放在public下的upload文件夹里,excel插件我放在vendor文件里

    3.控制器的引用方法,这些应该是必须的

    注:因为我用的是thinkcmf5,里面有自带的phpexcel的方法,所以你们用其他框架的我不知道可不可以用,如果不可以用,请把Loader改为

    1 vendor('PHPExcel.Classes.PHPExcel');
    2 vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');

    上面的如果读不出来,可能就是里面的路径没写对

     1   $dir = 'upload/';         //模板存放目录
     2             $templateName = 'account.xlsx';             //模板表
     3             $path = dirname(__FILE__);               //找到当前脚本所在路径
     4             Loader::import('PHPExcel.Classes.PHPExcel');
     5             Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
     6 
     7             $PHPExcel = new PHPExcel();
     8             $PHPReader = new PHPExcel_Reader_Excel2007();
     9             //读取Excel
    10             $PHPExcel = $PHPReader->load($dir.$templateName);
    11             $currentSheet = $PHPExcel->getSheet(0);

    4.样式设置,你也可以不设置

     2  //设置水平居中 3             $PHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     4             $PHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     5             $PHPExcel->getActiveSheet()->getStyle('C')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     6             $PHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     7             $PHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     8             $PHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     9             $PHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    10             $PHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    11             $PHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    12             $PHPExcel->getActiveSheet()->getStyle('J')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    13             $PHPExcel->getActiveSheet()->getStyle('K')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

    5.把数据导入到excel模板里面,我的是个二维数组

     1 for($i=0;$i<count($deal);$i++){
     2                 $currentSheet->setCellValue('A'.($i+3), date('Y-m-d H:i:s', $deal[$i]['create_time'])); //日期
     3                 $currentSheet->setCellValue('B'.($i+3),$deal[$i]['deal_type']); //交易类型
     4                 $currentSheet->setCellValue('C'.($i+3),$deal[$i]['roll_name']); //支出账户名称
     5                 $currentSheet->setCellValue('D'.($i+3),$deal[$i]['roll_user']); //支出账号
     6                 $currentSheet->setCellValue('E'.($i+3),$deal[$i]['receive_name']); //收入账号名称
     7                 $currentSheet->setCellValue('F'.($i+3),$deal[$i]['receive_user']); //收入账户
     8                 $currentSheet->setCellValue('G'.($i+3),$deal[$i]['account']); //交易金额
     9                 $currentSheet->setCellValue('H'.($i+3),$deal[$i]['roll_account']); //支出账号交易后余额
    10                 $currentSheet->setCellValue('I'.($i+3),$deal[$i]['receive_account']); //收入账号交易后余额
    11                 $currentSheet->setCellValue('J'.($i+3),$deal[$i]['user']); //操作员
    12                 $currentSheet->setCellValue('K'.($i+3),$deal[$i]['remark']); //订单备注
    13             }

    6.这样就可以下载下来了,有两种输出格式,excel输出是有表格线条的,网页输出没有表格线条

     1         ob_clean();
     2             ob_start();
     3             $objWriteHTML = new PHPExcel_Writer_Excel2007($PHPExcel); //输出EXCLl格式的对象
     4             header("Content-type: application/octet-stream;charset=utf-8");
     5             header('Content-Type: application/vnd.ms-excel');
     6             header('Content-Disposition: attachment;filename="funds.xlsx"');  //日期为文件名后缀
     7             header('Cache-Control: max-age=0');
     8             $objWriteHTML->save("php://output");
     9 
    10             exit;//退出

     7.完成

    人生得意须尽欢,莫使金樽空对月.
  • 相关阅读:
    ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第二篇:第一个页面
    HTML5网页录音和压缩,边猜边做..(附源码)
    策划编写一个新的Helper类
    正由另一进程使用,因此该进程无法访问此文件。
    第三方组件引用另一个第三方组件的悲剧
    数据库连接池的计数器设计
    让Ajax更简单
    更新Literacy
    多说
    利用C#自带组件强壮程序日志
  • 原文地址:https://www.cnblogs.com/luojie-/p/7754181.html
Copyright © 2011-2022 走看看