PhpExcel数组输出到Excel浏览器下载

经常是mysql查出二维数组,并且数组的带key也是有意义的,考虑到经常用,就打算弄个函数出来,方便以后用!

相对是规范的数组哈,具体可看下$data数组;

生成的excel第一行是对应的key;

直接上代码:

<?php
/**
 * User: Klaus
 * Date: 2016/5/16 17:04
 */
date_default_timezone_set(‘PRC‘);
header("Content-type: text/html; charset=utf-8");
include "E:/klaus/work/PHPdiscuz/plugin/phpexcel/PHPExcel.php";//引入phpexcel

$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);
$data[] = array(‘uid‘ => 1, ‘email‘ => ‘[email protected]‘, ‘password‘ => ‘asdsadasd‘, ‘password1‘ => ‘asdsadasd‘,
    ‘password2‘ => ‘asdsadasd‘);

arrToExcel($data,‘lptest‘);

function arrToExcel($data,$name)
{
    //处理数据,获取key
    $keys = array_keys($data[0]);
    $objPHPExcel = new PHPExcel();
    // 修改sheet名称
    $objPHPExcel->getActiveSheet()->setTitle($name . ‘_‘ . date(‘Ymd_His‘));
    // 读取数组
    for ($j = 1; $j <= count($data); $j++) {
        for ($k = 1; $k <= count($data[0]); $k++) {
            $colname = PHPExcel_Cell::stringFromColumnIndex($k - 1); // 从o开始
            $colname .= $j;
            if ($j == 1) {
                $value = $keys[$k - 1];
            } else {
                $key = $keys[$k - 1];
                $value = $data[$j - 1][$key];
            }
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue($colname, $value);
        }
    }
    //设置列宽
    $objPHPExcel->getActiveSheet()->getColumnDimension(‘C‘)->setWidth(49);

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
    // Redirect output to a client’s web browser (Excel5)
    header(‘Content-Type: application/vnd.ms-excel‘);
    header(‘Content-Disposition: attachment;filename=‘ . $name . ‘_‘ . date(‘Ymd_His‘) . ‘.xls‘);
    header(‘Cache-Control: max-age=0‘);
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);
    $objWriter->save(‘php://output‘);
}

结果如图:

列数变下,行数变下:

结过如图:

对了补充下,sheet的名字也是变得哦!

第一次:

第二次:

大功告成!

时间: 2024-10-06 16:01:33

PhpExcel数组输出到Excel浏览器下载的相关文章

将二维数组输出到excel,显示带行头的表以及列能手动改变宽度

将二维数组输出到excel,例子在我的helpfunction里面 简单的例子在这:http://www.blogjava.net/hezhi/articles/POI.html Poi包在这里下载:http://mvnrepository.com/artifact/org.apache.poi/poi/3.11-beta3 显示带行头的表以及列能手动改变宽度 http://erbo2008.iteye.com/blog/547182

浏览器下载Excel,直接打开显示乱码...

情景: 浏览器中点击下载文件有两个选项:[打开][下载] [打开]之后,提示["文件.xlsx"的文件格式和扩展名不匹配.文件可能已损坏或不安全.除非您信任其来源,否则请勿打开.是否仍要打开它?],点击[是],看到Excel乱码.. [下载]之后,再打开,会提示[发现"文件.xlsx"中的部分内容有问题.是否让我们尽量尝试恢复?如果您信任工作簿的源,请单击"是"] 扩展:工作簿的"源",是将"文件.xlsx"

转换成流字节,输出浏览器下载

//转换成流字节,输出浏览器下载var byti = file.SaveToStream().GetBuffer(); ////通知浏览器保存文件,其实也就是输出到浏览器Response.Clear();Response.ContentType = "application/octet-stream";Response.AppendHeader("Content-Disposition", "attachment;filename=" + fil

PHPExcel数据导出到Excel文件

/** * 数据导出到Excel文件 * * @param object $data 要导出的数据内容 * @param object $headArr 设置Excel的头名称 * @param string $fileName 导出的文件名称 * @param string $width 设置单元格的宽度 * * @throws PHPExcel_Exception 异常控制 * @throws PHPExcel_Reader_Exception 控制Excel加载时的异常 * @throws

将Asp.Net页面输出到EXCEL里去

其实,利用ASP.NET输出指定内容的WORD.EXCEL.TXT.HTM等类型的文档很容易的.主要分为三步来完成.  一.定义文档类型.字符编码   Response.Clear(); Response.Buffer= true; Response.Charset="utf-8"; //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开 //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以

PHPExcel生成或读取excel文件

以下是详细代码示例: <?php /** * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释. * 如果使用 Excel5 ,输出的内容应该是GBK编码. */ require_once 'PHPExcel.php';// uncomment ////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls // or ////require_once 'PHPExcel/Writer/Ex

php 基于phpexcel制作的导出excel类

最近要写个项目,由于项目中导出excel太多,因此写个类便于使用. <?php /* *@使用方法. *引入类库. * $excel = news excelC(); *$excel->fileName = '文件名称';//设置文件名称,默认为时间戳 *$excel->format = '2007';//文件类型,默认为2007,其他为excel5 *$record = array( 'delKey'=>array('id','addTime','status'),//如果数据$

解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码.也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很多,但是解决的不理想,主要是IE11作为主流浏览器后,很多人之前提出的方案都失效了. 简单来说,之前使用request获取header中的user-agent,通过MSIE关键字来判断是否是IE浏览器,如果是IE浏览器,使用utf-8对文件名编码就可以了.然而,IE11的user-agent已经没有

报表XML导出rtf格式,结果在浏览器中打开XML文件。用360浏览器下载rtf文件打开后出现Authentication failed 问题

报表XML导出rtf格式,结果在浏览器中打开XML文件.用360浏览器下载rtf文件打开后出现Authentication failed 问题 直接上问题图: 问题描述:在Oracle EBS中执行"资源事务处理 XML"请求,选择输出rtf格式,完成后查看输出,却在浏览器中打开了XML文件.        提示:需要检查一下是否有对应的模板文件和模板定义有效时间.        解决方案:1. 查看日志. 从中可以看出出错原因,以及模板代码.2. 添加Oracle XML Publi