PHP生成excel(2)

现在数据库有一组数据,就是按照年级的分类的学生分数,如何按照年级分类导出到excel表中

1、数据库配置文件config.php

<?php
$config = array(
	‘host‘=>‘127.0.0.1‘,
	‘username‘=>‘root‘,
	‘password‘=>‘‘,
	‘database‘=>‘phpexcel‘,
	‘charset‘=>‘utf8‘
);

2、数据库操作文件db.php,单例模式操作

<?php
class Db {

    private static $_instance;
    private $conn = null;
    private function __construct() {
        require "./dbconfig.php";
        $this->conn = mysql_connect($config[‘host‘],$config[‘username‘],$config[‘password‘]) or die(mysql_error);
        mysql_select_db($config[‘database‘],$this->conn) or die(mysql_error());
        mysql_query(‘set names ‘.$config[‘charset‘]);
    }

    //查询结果集
    public function getResult($sql) {
        $resource = mysql_query($sql,$this->conn) or die(mysql_error());
        $res = array();
        while($row = mysql_fetch_assoc($resource)) {
            $res[] = $row;
        }
        return $res;
    }

    //单例模式
    public static function getInstance() {
        if (!self::$_instance instanceof self) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    private function __clone() {
        trigger_error(‘Clone is not allow!‘,E_USER_ERROR);
    }
}

3、生成excel类

<?php
header("Content-Type:text/html;charset=utf-8");
require "./db.php";
require "./PHPExcel/PHPExcel.php";

//连接数据库
$db = Db::getInstance();

//实例化excel类
$objPHPExcel = new PHPExcel();

//创建sheet
for ($i=1; $i<=3; $i++) {
    if ($i > 1) { //默认已经有一个sheet,从第二个开始创建
        $objPHPExcel->createSheet();
    }
    $objPHPExcel->setActiveSheetIndex($i-1);
    //获得当前活动sheet的操作对象
    $objSheet = $objPHPExcel->getActiveSheet();

    //设置sheet标题
    $objSheet->setTitle($i.‘年级‘);

    //从数据库查询数据
    $Db = Db::getInstance();

    //查询每个年级的活动数据
    $data = $Db->getResult("select * from user where grade = ".$i);

    $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分数")->setCellValue("C1","班级");

    //添加数据
    $j = 2;
    foreach ($data as $value) {
        $objSheet->setCellValue("A".$j,$value[‘username‘])->setCellValue("B".$j,$value[‘score‘])->setCellValue("C".$j,$value[‘grade‘]);
        $j++;
    }
}

//按照指定格式生成excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007‘);//生成excel 2007
$objWriter->save(‘class.xlsx‘);

//如果需要输出到浏览器,请打开以下注释和注释掉save行
//输出到浏览器
/*browser_export(‘Excel7‘,‘export.xlsx‘);
$objWriter->save(‘php://output‘);
function browser_export($type,$exportName) {
    //输出到浏览器
    if ($type == ‘Excel5‘) {
        header(‘Content-Type: application/vnd.ms-excel‘);//excel03
    } else {
        header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘);//excel07
    }
    header(‘Content-Disposition: attachment;filename="‘.$exportName.‘"‘);//文件名称
    header(‘Cache-Control: max-age=0‘);//禁止浏览器缓存
}*/

以上就是操作实例,如需转载请注明出处,不慎感激。

时间: 2024-11-01 18:02:53

PHP生成excel(2)的相关文章

python读取和生成excel文件

今天来看一下如何使用python处理excel文件,处理excel文件是在工作中经常用到的,python为我们考虑到了这一点,python中本身就自带csv模块. 1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx  直接重命名为csv的话会报错: Error: line contains NULL byte insun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了 譬

PHP 使用 PHPExcel 库生成 Excel 文件

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等 调用代码示例: $php_excel = new PHPExcel(); $properties = $php_exc

PHP生成excel(1)

先到PHPExcel官网下载PHPExcel类 http://phpexcel.codeplex.com/ 把excel类包含进来,然后直接使用 <?php require "./PHPExcel/PHPExcel.php"; //实例化excel类 $objPHPExcel = new PHPExcel(); //获得当前活动sheet的操作对象 $objSheet = $objPHPExcel->getActiveSheet(); //给当前活动sheet设置名称 $o

一款强大的Office插件,教你如何自动生成Excel图表

项目背景: 在项目里面需要根据数据进行Excel的导出,但有时候不仅仅需要导出数据,而且还需要根据数据进行生成图表进行展示.之前的做法是先在模板里面进行公式的设定如下图1.1.这样就会遇到一个问题,那就是有一天需要不断的增加部门,一个两个还好,若突然需要加十几个或者二十几个,或者不是以部门为纵轴,那么可想而知改动就比较麻烦了,需要不断的修改模板,并且上传,而且这样的改法也比较死板,不适合.1.1图 如何解决 第一步:先查阅目前项目中所使用的NPOI相关的文档,看这个能不能支持相关的操作.很遗憾,

Java生成Excel文件

1.设计源码 /** * * @title:ExcelUtils.java * @Package:com.you.utils * @Description:<h3>一句话描述功能</h3> * @author:游海东 * @date:2015-3-21下午10:17:34 * @version V1.0 * */ package com.you.utils; import java.io.File; import java.io.IOException; import jxl.Wo

OpenXML简介和生成Excel

OpenXML是一个开放性的标准,基于熟知的技术:ZIP和XML OpenXML SDK安装以后,要在应用程序中添加以下引用. DocumentFormat.OpenXml WindowsBase SpreadsheetML是用于操作Excel文档.工作簿包含 工作簿部件(必须部件) 一张或多张工作表 图表 表 自定义XML 典型的电子表格元素如图所示 一个简单生成Excel的例子 1 public class CreateXlsx 2 { 3 public static void Create

c# mvc如何生成excel

我们知道mvc可以通过js生成excel文件,同样在后台c#中一样可以生成excel文件. 首先我们要在后台中写如下方法: [HttpGet]public FileResult excel_generation(string userid,string count,string order_id,string order_name,string rec_person,string height,string shoulder_width,string sleeve_length,string p

php用PHPExcel库生成Excel文档的例子

<?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory.php'; require_once '../../config.php'; // New Word Document $PHPWord = new PHPWord(); $objExcel->getProperties()->setCreator("office 2003 excel

extjs4 前台导出grid数据 生成excel,数据量大后台无法接收到数据

最近做的一个web项目使用的是extsj4 框架,需要一个导出excel功能,通过extjs4 自带的导出方法实现.在前台生成excel的代码,form提交传递到后台输出.前台grid数据超过1000行后导出数据后台无法接收.网上搜索了很多是tomcat传输数据大小默认为2m导致的,将tomcat的server.xml中的 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20

c# 生成excel并导出

用c#的NPOI读写Excel 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 3.POI读取Excel有两种格式一个是HSSF,另一个是XSSF. HSSF和XSSF的区别如下: HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file for