PHPExcel导出主要代码记录

/*
 * 获取下一个列名
 * 注意,此方法最多支持到两位
 * */
function getNextColum($colum){
    if(empty($colum))return ‘A‘;
    $key = ord(substr($colum,strlen($colum)-1,1));
    if($key<90){
        $str = strlen($colum)>1?substr($colum,0,1).chr($key+1):chr($key+1);
    }else{
        $str = strlen($colum)>1?chr(ord(substr($colum,0,1))+1).‘A‘:‘AA‘;
    }
    return $str;
}

function exportExcel(){
    $keyValue = array(
        ‘field_01‘ => ‘第一列标题‘,
        ‘field_02‘ => ‘第二列标题‘,
        ‘field_03‘ => ‘第三列标题‘,
        ‘field_04‘ => ‘第四列标题‘,
    );
    $list = array(
        array(‘field_01‘ => ‘value_01‘, ‘field_02‘ => ‘value_02‘, ‘field_03‘ => ‘value_03‘, ‘field_04‘ => ‘value_04‘),
        array(‘field_01‘ => ‘value_01‘, ‘field_02‘ => ‘value_02‘, ‘field_03‘ => ‘value_03‘, ‘field_04‘ => ‘value_04‘),
        array(‘field_01‘ => ‘value_01‘, ‘field_02‘ => ‘value_02‘, ‘field_03‘ => ‘value_03‘, ‘field_04‘ => ‘value_04‘),
        array(‘field_01‘ => ‘value_01‘, ‘field_02‘ => ‘value_02‘, ‘field_03‘ => ‘value_03‘, ‘field_04‘ => ‘value_04‘)
    );
    $this->import(‘PHPExcel‘);
    $PHPExcel = new PHPExcel();
    $fileName = iconv("utf-8", "GBK", ‘excel文件名_导出时间(‘ . date(‘YmdHi‘, time()) . ‘).xlsx‘);
    $colum = "A";//设置表头
    foreach ($keyValue as $keys => $value) {
        $PHPExcel->setActiveSheetIndex(0)->setCellValue($colum . ‘1‘, $value);
        $PHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth(30);
        $colum = getNextColum($colum);
    }
    $row = 2;
    foreach ($list as $value) {
        $colum = "A";//设置表头
        foreach ($keyValue as $v => $fieldContent) {
            $PHPExcel->setActiveSheetIndex(0)->setCellValueExplicit($colum . $row, empty($value[$v]) ? ‘--‘ : $value[$v], PHPExcel_Cell_DataType::TYPE_STRING);
            $PHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth(30);
            $colum = getNextColum($colum);
        }
        $row++;
    }
    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($PHPExcel, ‘Excel2007‘);
    $objWriter->save(‘php://output‘);
}
时间: 2024-10-26 00:26:27

PHPExcel导出主要代码记录的相关文章

phpExcel导出excel加超级链接的实例代码[转]

phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8. 完整代码: 代码示例: <?php//写excel //Include class require_once(‘Classes/PHPExcel.php’); require_once(‘Classes/PHPExcel/Writer/Excel2007.php’); $objPHPExcel

PHPExcel导出excel

如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr); 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel 导入

phpexcel导出数据表格

1.下载phpexcel 2.在页面引入phpexcel的类文件,并且造该类的对象 include("../chajian/phpexcel/Classes/PHPExcel.php"); $excel = new PHPExcel(); 3.查询数据库得出二维数组这里数组名为:$attr 4.导出excel代码,表头数组和数据数组对应: //Excel表格式,这里简略写了10列 $letter = array('A','B','C','D','E','F','F','G','H','

phpexcel导出超过26列解决方案

原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,..开始,相应返回返回 A,B,C,...Z,AA,AB,...   将列的字母转成数字序号使用,代码如下:   PHPExcel_Cell::columnIndexFromString('AA'); 使用phpexcel导出excel文件的时候,发现报了一个错误,后来查询问题才发现是列数超过26列的问

php利用phpexcel导出数据

php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子. 完整代码: public function export_data($data = array()) { # code... include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ; include_on

phpexcel导出数据 出现Formula Error的解决方案

phpexcel导出数据报错 Uncaught exception 'Exception' with message 'Sheet1!A1364 -> Formula Error: Unexpected operator '='' 在excel中一个单元格如果是以“=”开头,则说明这个单元格是根据其他单元格的值算出来的,“=”后面必须跟着一个合法的表达式 而那个字符串是用户的输入,很明显不应该是一个合法的表达式,所以应该在代码中过滤掉 方法很简单,在“=”前面加一个半角的单引号就可以了,所以修改

MVVM 代码记录

  一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MVVM" xmlns:d="http://schemas

PHPExcel导出Excel文件

error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $