php导出表格两种方法 ——PhpExcel的列子

php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式。

第一种导出例子

/**

* 执行导出

* @param unknown $result 数据源

*/

function Excel($result,$fileName=‘‘,$Key=‘‘){

$fileName = iconv(‘utf-8‘, ‘gbk‘,$fileName);

header("Content-type:text/html;charset=utf-8");

header("Content-type:application/octet-stream");

header("Accept-Ranges:bytes");

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:attachment;filename=$fileName".date("Y-m-d").".xls");

header("Pragma: no-cache");

header("Expires: 0");

//第一行显示key

if(!$Key){

$Key = array("姓名 ","性别 ","手机号 ","意向车型 ","购买计划","提交时间");

}

echo iconv(‘utf-8‘, ‘gbk‘, implode("\t", $Key))."\n";

//第三行显示剩余val

foreach($result as $key=>$val){

echo iconv(‘utf-8‘, ‘gbk‘, implode("\t", $val))."\n";

}

}

第二种导出使用phpexcel

/**

* 导出数据(生成excel)

* @param $data excel第一行数据

* 例:1、array(‘字段‘ => ‘1‘);

* @param $list 二维数组 导出的数据

* @param string $title 工作表名称

* @param string $filename 文件名称

* @return boolean

*/

public function output1($data , $list , $title = ‘数据模板‘ , $filename = ‘数据模板‘){

$count  = count($data);//数组长度

if(!is_array($data) || $count > $this->maxstr){//数据是否符合要求

return false;

}

// Create new PHPExcel object

$objPHPExcel = new \PHPExcel();

// Set document properties

$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")

->setLastModifiedBy("Maarten Balliauw")

->setTitle("Office 2007 XLSX Test Document")

->setSubject("Office 2007 XLSX Test Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

// Add some data 第一行

// 添加一些数据  第一行

$SheetIndex = $objPHPExcel->setActiveSheetIndex(0);

$this->setAttendance($SheetIndex);//写入数据

//设置第一个单元格样式

$obActiveSheet = $objPHPExcel->getActiveSheet();

//设置高度

$obActiveSheet->getRowDimension(‘1‘)->setRowHeight(40);

$obActiveSheet->getRowDimension(‘6‘)->setRowHeight(100);

$obActiveSheet->getRowDimension(‘7‘)->setRowHeight(90);

$obActiveSheet->getRowDimension(‘8‘)->setRowHeight(90);

$obActiveSheet->getRowDimension(‘9‘)->setRowHeight(90);

$obActiveSheet->getRowDimension(‘10‘)->setRowHeight(80);

$obActiveSheet->getRowDimension(‘17‘)->setRowHeight(20);

$obActiveSheet->getRowDimension(‘18‘)->setRowHeight(30);

$obActiveSheet->getRowDimension(‘19‘)->setRowHeight(30);

//设置宽度

$obActiveSheet->getColumnDimension(‘A‘)->setWidth(12);

$obActiveSheet->getColumnDimension(‘B‘)->setWidth(18);

$obActiveSheet->getColumnDimension(‘C‘)->setWidth(15);

$obActiveSheet->getColumnDimension(‘D‘)->setWidth(15);

$obActiveSheet->getColumnDimension(‘E‘)->setWidth(15);

$obActiveSheet->getColumnDimension(‘H‘)->setWidth(15);

//导出

$this->outputPHPExcel($objPHPExcel, $filename);

}

/**

* 考勤数据写入

* @param $SheetIndex 单元格对象

* @param $Cycle 周期数据列表

* @param $_clock 员工考勤数据

* @return number 返回当前最大行数

*/

private function setAttendance($SheetIndex){

$c = 1;

/** ----------------------------考勤头部开始--------------------------------------- */

$chrA = chr($this->asciiA  + 0);//A

$chrB= chr($this->asciiA + 1);//B

$chrC= chr($this->asciiA + 2);//C

$chrD= chr($this->asciiA + 3);//D

$chrE= chr($this->asciiA + 4);//E

$chrF= chr($this->asciiA + 5);//F

$chrG= chr($this->asciiA + 6);//G

$chrH= chr($this->asciiA + 7);//G

$chrI= chr($this->asciiA + 8);//G

$chrJ= chr($this->asciiA + 9);//G

$chrK= chr($this->asciiA + 10);//G

$chrL= chr($this->asciiA + 11);//G

$chrM= chr($this->asciiA + 12);//G

$chrN= chr($this->asciiA + 13);//G

$chrO= chr($this->asciiA + 14);//G

$SheetIndex->setCellValueExplicit($chrA.($c), ‘岗位考核模板‘);

$SheetIndex->mergeCells($chrA.($c).‘:‘.$chrO.($c));//合并单元格 A2,A3

$SheetIndex->setCellValueExplicit($chrA.($c+1), ‘被考核人‘);

$SheetIndex->mergeCells($chrA.($c+1).‘:‘.$chrA.($c+2));//合并单元格 A2,A3

$SheetIndex->setCellValueExplicit($chrB.($c+1), ‘姓名‘);

$SheetIndex->setCellValueExplicit($chrB.($c+2), ‘职务‘);

$SheetIndex->setCellValueExplicit($chrC.($c+1), ‘xxx‘);

$SheetIndex->setCellValueExplicit($chrD.($c+1), ‘部门‘);

$SheetIndex->setCellValueExplicit($chrD.($c+2), ‘入职时间‘);

$SheetIndex->setCellValueExplicit($chrE.($c+1), ‘网站开发部‘);

$SheetIndex->mergeCells($chrE.($c+1).‘:‘.$chrG.($c+1));//合并单元格

$SheetIndex->mergeCells($chrE.($c+2).‘:‘.$chrG.($c+2));//合并单元格

$SheetIndex->setCellValueExplicit($chrH.($c+1), ‘被考核人主管‘);

$SheetIndex->mergeCells($chrH.($c+1).‘:‘.$chrI.($c+1));//合并单元格

$SheetIndex->mergeCells($chrH.($c+2).‘:‘.$chrI.($c+2));//合并单元格

$SheetIndex->setCellValueExplicit($chrJ.($c+1), ‘姓名‘);

$SheetIndex->setCellValueExplicit($chrJ.($c+2), ‘职务‘);

$SheetIndex->setCellValueExplicit($chrK.($c+1), ‘xxx);

$SheetIndex->mergeCells($chrK.($c+1).‘:‘.$chrO.($c+1));//合并单元格

$SheetIndex->mergeCells($chrK.($c+2).‘:‘.$chrO.($c+2));//合并单元格

$SheetIndex->mergeCells($chrA.($c+3).‘:‘.$chrO.($c+3));//合并单元格

//第5行

$SheetIndex->setCellValueExplicit($chrA.($c+4), ‘序号‘);

$SheetIndex->setCellValueExplicit($chrB.($c+4), ‘指标名称‘);

$SheetIndex->setCellValueExplicit($chrC.($c+4), ‘权重‘);

$SheetIndex->setCellValueExplicit($chrD.($c+4), ‘衡量方法‘);

$SheetIndex->setCellValueExplicit($chrM.($c+4), ‘评定‘);

$SheetIndex->setCellValueExplicit($chrN.($c+4), ‘评分‘);

$SheetIndex->setCellValueExplicit($chrO.($c+4), ‘最终得分‘);

$SheetIndex->mergeCells($chrD.($c+4).‘:‘.$chrL.($c+4));//合并单元格

//第6行

$SheetIndex->setCellValueExplicit($chrA.($c+5), ‘1‘);

$SheetIndex->setCellValueExplicit($chrB.($c+5), ‘工作完成度‘);

$SheetIndex->setCellValueExplicit($chrC.($c+5), ‘30%‘);

$SheetIndex->setCellValueExplicit($chrD.($c+5), "A+:测试没有崩溃、严重并且无高级别bug

A:测试没有崩溃、严重并且高级别bug控制在所有bug的1%以内,中级别bug控制在10%

100:测试没有崩溃、严重并且高级别bug控制在所有bug的2%以内,中级别bug控制在20%

B :测试没有崩溃、严重并且高级别bug控制在所有bug的5%,使用方反馈系统中出现文案、兼容性等对系统造成较小影响的bug

B-: 有崩溃严重bug或者无奔溃严重bug但是有5%以上的高级别bug,使用方反馈在使用中出现功能无法使用、500、404等严重故障");

$SheetIndex->setCellValueExplicit($chrM.($c+5), ‘100‘);

$SheetIndex->setCellValueExplicit($chrN.($c+5), ‘100‘);

$SheetIndex->setCellValueExplicit($chrO.($c+5), ‘30‘);

$SheetIndex->mergeCells($chrD.($c+5).‘:‘.$chrL.($c+5));//合并单元格

}

这只是部分代码

时间: 2024-10-07 09:39:00

php导出表格两种方法 ——PhpExcel的列子的相关文章

oracle数据的导入导出(两种方法三种方式)

大概了解数据库中数据的导入导出.在oracle中,导入导出数据的方法有两种,一种是使用cmd命令行的形式导入导出数据,另一种是使用PL/SQL工具导入导出数据. 1,使用cmd命令行导入导出数据 1.1整库导出 整库导出:exp 管理员账号/密码 full=y;//参数full表示整库导出.导出后会在当前目录下生成一个EXPDAT.DMP的文件,此文件为备份文件.如果想导出数据到指定位置,并且取个名字,需要添加file参数.例如:exp system/123456 file= C:\person

SQL2008全部数据导出导入两种方法

方法一:生成脚本导出导入sql2008全部数据 第一步,右键要导出的数据库,任务--生成脚本 第二步,在设置脚本编写选项处,点击--高级(A),选择要编写脚本的数据的类型为:架构和数据 如果找不到 要编写脚本的数据的类型 ,可以看下图,sql2008(有多个版本),把编写数据的脚本设置为TRUE即可 第三步:选择要保存的地方,一直下一步就可以了 第四步:在要导入的数据库中新建查询:从SET ANSI_NULLS ON 处开始执行(可以删除这句前面所有语句) 上面方法,用到本人的sql serve

SQL2008所有数据导出导入两种方法

方法一:生成脚本导出导入sql2008所有数据 第一步.右键要导出的数据库.任务--生成脚本 第二步,在设置脚本编写选项处,点击--高级(A),选择要编写脚本的数据的类型为:架构和数据 假设找不到 要编写脚本的数据的类型 .能够看下图.sql2008(有多个版本号),把编写数据的脚本设置为TRUE就可以 第三步:选择要保存的地方,一直下一步就能够了 第四步:在要导入的数据库中新建查询:从SET ANSI_NULLS ON 处開始运行(能够删除这句前面全部语句) 上面方法,用到本人的sql ser

dll编程导出接口的两种方法

前言: 在vc中到处dll有两种方法: 第一种:是通过模块定义def文件,把要导出的函数接口放在里面,而def文件为链接器提供有关程序的到处,属性等方面的信息. 第二种:在函数声明中加上__declspec(dllexport): 第一种方法示例: 先构建一个名为:mousehook_dll的dll项目: 在hookLoad.h种声明两个接口函数: #pragma once BOOL StartHookEv(HWND hWnd); VOID StopHookEv(void) ; 在hookLoa

LayUI使用弹窗重载父级数据表格的两种方法

参考LayUI官方文档,在子窗口中重载父级数据表格找到以下两种方法: 1.子窗口中重载:在子窗口中直接调用父级talbe的reload方法. $("body").on("click", "#Test", function () { //刷新父级数据表格 parent.layui.table.reload("demo"); //关闭弹层 var index = parent.layer.getFrameIndex(window.

用easyui实现查询条件的后端传递并自动刷新表格的两种方法

用easyui实现查询条件的后端传递并自动刷新表格的两种方法 搜索框如下: 通过datagrid的load方法直接传递参数并自动刷新表格 通过ajax的post函数传递参数并通过loadData方法将数据初始化到表格中 js代码(搜索按钮的点击事件部分): $("#standardQueryBtn").click(function(){//点击搜索按钮的触发事件 if($("#offerid").val() != ""){//判断id搜索框的值是

两种方法DatagridView轻松导入到Excel

众所周知,DatagridView控件来处理表各类数据真的是"简单.方便.疗效快",因此备受广大民众喜爱.今天我们再来继续探讨一下有关它和Excel的"姊妹情深". 几乎没有人不对Excel不了解,但要说熟悉和认识透彻恐怕我们还远远没有做到(这是题外之言),重点还是Excel的强大数据处理能力带给我们的便利,所以把DatagridView数据表变为老少皆宜的Excel表格就显得尤为重要了. 其实这一转换也很简单,下面就为大家介绍下两种方法,轻松连接"姊妹情

pdf文件怎么修改 修改PDF文件的两种方法

都说PDF格式的文件不能修改,我就呵呵了!不管你们信不信,反正我是不信.因为我会修改PDF文件,并且方法还不止一种.想知道我是怎么修改PDF文件的吗?下面我就告诉大家修改PDF文件的两种方法. 方法一 1.方法一就是将PDF文件转换成一种可容易编辑的文档,如:word.excel.ppt等格式,然后再进行编辑,编辑好后再将其转换成PDF格式,是不是很简单!具体是该如何转换的,下面有详细教程. 2.下载一个PDF转换器,并将它安装在电脑上.工具最好是支持双向转换的那种,如:http://www.x

mysql导出数据库几种方法

mysql教程导出数据库教程几种方法 方法一 cmd 到mysql bin目录下用 如下命令 mysqldump --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables databasename>database.sql 把ip改成localhost就可以的 如果装了navicate那就更简单了 先连接上数据库,选中数据库 再选择转储sql 就好了 方法二进入cmd (注意在os cmd中 而不是在mysql中) ======