• ThinkPHP中,运用PHPExcel,将数据库导出到Excel中


    1.将PHPExcel插件放在项目中,本人位置是ThinkPHP文件夹下,目录结构如下/ThinkPHP/Library//Vendor/...
    2.直接根据模型,配置三个变量即可使用。
    /**
    * Excel导出
    * @param $fileName(文件名)
    * @param $headArr (表头)
    * @param $data (每一行的数据)
    * @throws PHPExcel_Exception
    * @throws PHPExcel_Reader_Exception
    */
    function getExcel($fileName, $headArr, $data)
    {
    include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel.php");
    include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/Writer/Excel2007.php");
    include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/Writer/Excel5.php");
    include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/IOFactory.php");
    if (empty($data) || !is_array($data)) {
    die("data must be a array");
    }
    if (empty($fileName)) {
    exit;
    }
    $date = date("Y_m_d", time());
    $fileName .= "_{$date}.xlsx";

    //创建新的PHPExcel对象
    $objPHPExcel = new PHPExcel();
    $objProps = $objPHPExcel->getProperties();

    //设置表头
    $key = ord("A");
    $key2 = ord("A");
    $colum2 = '';
    $objActSheet = $objPHPExcel->getActiveSheet();
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
    foreach ($headArr as $v) {
    $colum = chr($key);
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum2 . $colum . '1', $v);
    if ($key < 90) {
    $key += 1;
    } else {
    $key = ord("A");
    $colum2 = chr($key2);
    $key2++;
    }
    }
    //exit;
    $column = 2;

    foreach ($data as $key => $rows) { //行写入
    $span = ord("A");
    $span2 = ord("A");
    $j2 = '';
    foreach ($rows as $keyName => $value) {// 列写入
    $j = chr($span);
    //$objActSheet->setCellValue($j.$column, $value);
    //把每个单元格设置成分文本类型
    //dump($j2.$j.$column);
    $objActSheet->setCellValueExplicit($j2 . $j . $column, $value, PHPExcel_Cell_DataType::TYPE_STRING);

    if ($span < 90) {
    $span += 1;
    } else {
    $span = ord("A");
    $j2 = chr($span2);
    $span2++;
    }
    }
    $column++;
    }
    // exit;
    $fileName = iconv("utf-8", "gb2312", $fileName);
    //重命名表
    $objPHPExcel->getActiveSheet()->setTitle('Simple');
    //设置活动单指数到第一个表,所以Excel打开这是第一个表
    $objPHPExcel->setActiveSheetIndex(0);
    //将输出重定向到一个客户端web浏览器(Excel2007)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header("Content-Disposition: attachment; filename="$fileName"");
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    if (!empty($_GET['excel'])) {
    $objWriter->save('php://output'); //文件通过浏览器下载
    } else {
    $objWriter->save($fileName); //脚本方式运行,保存在当前目录
    }
    $objWriter->save('php://output');
    exit;

    }
  • 相关阅读:
    头文件里面的ifndef /define/endif的作用
    互联网小知识
    IT技术开发人员获得成功的六大步骤
    ab网站压力测试
    微软校招试题
    C程序编译过程浅析
    makefile变量赋值
    printf的题目
    Oracle命名规范
    javascript(js)小数精度丢失的解决方案
  • 原文地址:https://www.cnblogs.com/holiphy/p/9587852.html
Copyright © 2020-2023  润新知