文档章节

  php两种导出excel的方法

陈映亮
 陈映亮
发布于 2015/10/30 15:02
字数 891
阅读 384
收藏 3

所需要的:jquery库,phpexcel插件,页面导出excel效果测试文件explode.php,excel导出功能实现文件exp.php和explode_excel.php,文件相关内容在此文下面:

explode.php:测试页面内容:访问此页面后单击explode1与explode2能导出两种不同效果的excel,代码如下:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<script src='jquery.js'></script>
<title></title>
<style>
td{
    text-align:center;
    font-size:12px;
    font-family:Arial, Helvetica, sans-serif;
    border:#1C7A80 1px solid;
    color:#152122;
    width:100px;
}
table,tr{
    border-style:none;
}
.title{
    background:#7DDCF0;
    color:#FFFFFF;
    font-weight:bold;
}
</style>
</head>
<body>
<script>
    $(document).ready(function(){
        $('#explode1').click(function(){
                window.location.href='exp.php';
        });
 
        $('#explode2').click(function(){
                window.location.href='explode_excel.php';
        });
    })
</script>
<table width="800" border="1">
  <tr>
    <td class='title'>Date</td>
    <td class='title' colspan="5" style='width:500px;text-align:center;'>CSAT Score</td>
    <td class='title'>Grand Total</td>
    <td class='title'>CSAT</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
</table>
<br />
<input type='button' id='explode1' value='Explode' style='margin-left:620px;background-color:#10899E;color:white;padding:3px;font-weight:bold;'><input type='button' id='explode2' value='Explode2' style='background-color:#10899E;color:white;padding:3px;font-weight:bold;margin-left:24px;'>
</body>
</html>

第一种,用phpexcel插件导出excel,即exp.php文件中的内容:

<?php
header("content-type:text/html;charset=utf-8");
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
include_once 'PHPExcel.php';
 
/** PHPExcel_Writer_Excel2003用于创建xls文件 */
include_once 'PHPExcel/Writer/Excel5.php';
 
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
 
// Set properties
$objPHPExcel->getProperties()->setCreator("李汉团");
$objPHPExcel->getProperties()->setLastModifiedBy("李汉团");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
 
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Date');
//合并单元格:
$objPHPExcel->getActiveSheet()->mergeCells('B1:F1');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'CSAT Score');
$objPHPExcel->getActiveSheet()->SetCellValue('G1', 'Grand Total');
$objPHPExcel->getActiveSheet()->SetCellValue('H1', 'CSAT');
$objPHPExcel->getActiveSheet()->SetCellValue('A2', '08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('C2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('E2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('F2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('G2', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('H2', '0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A3', '08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('C3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('D3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('E3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('F3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('G3', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('H3', '0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A4', '08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('C4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('D4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('E4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('F4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('G4', '0');
$objPHPExcel->getActiveSheet()->SetCellValue('H4', '0%');
 
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Csat');
 
   
// Save Excel 2007 file
//$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  
 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
 $objWriter->save(str_replace('.php', '.xls', __FILE__));
 header("Pragma: public");
 header("Expires: 0");
 header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
 header("Content-Type:application/force-download");
 header("Content-Type:application/vnd.ms-execl");
 header("Content-Type:application/octet-stream");
 header("Content-Type:application/download");
 header("Content-Disposition:attachment;filename=csat.xls");
 header("Content-Transfer-Encoding:binary");
 $objWriter->save("php://output");
?>

第二种,直接用header导出html,指定样式的excel,即explode_excel.php中的内容,如下:

<?php
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=csat.xls" );
    echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
<title>无标题文档</title>
<style>
td{
    text-align:center;
    font-size:12px;
    font-family:Arial, Helvetica, sans-serif;
    border:#1C7A80 1px solid;
    color:#152122;
    width:100px;
}
table,tr{
    border-style:none;
}
.title{
    background:#7DDCF0;
    color:#FFFFFF;
    font-weight:bold;
}
</style>
</head>
 
<body>
<table width='800' border='1'>
  <tr>
    <td class='title'>Date</td>
    <td class='title' colspan='5' style='width:500px;text-align:center;'>CSAT Score</td>
    <td class='title'>Grand Total</td>
    <td class='title'>CSAT</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>测试内容!!</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
</table>
</body>
</html>
";
?>


本文转载自:http://my.oschina.net/adamboy/blog/29463

陈映亮
粉丝 10
博文 130
码字总数 38454
作品 0
深圳
程序员
私信 提问
使用 ProxySQL 改进 MySQL SSL 的连接性能

原文出处:Percona 译文出处:开源中国 在这篇博文里,我们准备来看一下 ProxySQL 是如何提高 MySQL 的 SSL 连接性能的。 当用 SSL 部署 MySQL 时,主要的问题是如果没有使用连接池(例如:P...

Percona
2017/10/03
0
0
关于直接用 HTML 导出 Excel 的单元格边框问题

如果一个HTML中只有一个表格,那我们可以直接将这个html文件改名为 xls ,然后用excel打开。或者在Web项目中直接将HTML的 content-type 设置为 application/msexcel ,从而生成 EXCEL 的文档...

红薯
2009/09/03
3K
4
提升网站访问速度的 SQL 查询优化技巧

原文出处:Delicious Brains 译文出处:开源中国 你一定知道,一个快速访问的网站能让用户喜欢,可以帮助网站从Google 上提高排名,可以帮助网站增加转化率。如果你看过网站性能优化方面的文...

Delicious Brains
2017/12/09
0
0
.Net委托类型解析

原文出处:hystar 不像Windows API中使用C语言风格的函数指针这种不安全的方式进行回调。.Net中此功能使用使用更为安全和面向对象的委托(delegate)来完成。委托是一个类型安全的对象,它指向...

hystar
2016/06/18
0
0
jQuery对象入门级介绍

本文由伯乐在线 -kmokidd 翻译。未经许可,禁止转载! 英文出处:smashingmagazine。欢迎加入翻译组。 你是否曾经见过像 这样的JavaScrip代码?或许你还会思考下 是什么,如果看到这些你都觉...

伯乐在线
2014/06/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部