利用PHPExcel将数据导出到xls格式的excel文件

在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使用写到博客中,作为以后开发的一个参考,免得再次使用的时候需要导出找资料,也给其他同行一个参考。作者:DragonDean,博客地址:http://www.cnblogs.com/dragondean/

什么是PHPExcel?

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

下载PHPExcel

phpexcel的官方网站地址是:http://phpexcel.codeplex.com/,我们可以从中下载需要的文件。我下载的是1.8的版本。下载之后将他解压到网站的根目录。

开发背景说明

此次开发是使用的ThinkPHP框架,根据查询的条件导出所有的内容。另外有一个导入的功能,我将另外撰文。更详细的说明请参考代码部分的注释。

导出部分的代码如下:

//导入相关文件
require_once $_SERVER[‘DOCUMENT_ROOT‘].‘/PHPExcel/Classes/PHPExcel.php‘;
//实例化
$phpexcel = new PHPExcel();
//设置比标题
$phpexcel->getActiveSheet()->setTitle(‘毅创科技 提示技术支持‘);
//设置表头
$phpexcel->getActiveSheet() ->setCellValue(‘A1‘,‘餐证字‘)
                            ->setCellValue(‘B1‘,‘单位名称‘)
                            ->setCellValue(‘C1‘,‘法定代表人‘)
                            ->setCellValue(‘D1‘,‘城市‘)
                            ->setCellValue(‘E1‘,‘地区‘)
                            ->setCellValue(‘F1‘,‘地址‘)
                            ->setCellValue(‘G1‘,‘类别‘)
                            ->setCellValue(‘H1‘,‘备注(经营范围)‘)
                            ->setCellValue(‘I1‘,‘发证机关‘)
                            ->setCellValue(‘J1‘,‘起始日期‘)
                            ->setCellValue(‘K1‘,‘终止日期‘)
                            ->setCellValue(‘L1‘,‘食品安全管理人‘)
                            ->setCellValue(‘M1‘,‘是否执证‘)
                            ->setCellValue(‘N1‘,‘发证日期‘)
                            ->setCellValue(‘O1‘,‘联系电话‘)
                            ->setCellValue(‘P1‘,‘使用面积‘)
                            ->setCellValue(‘Q1‘,‘从业人员数‘)
                            ->setCellValue(‘R1‘,‘变更情况‘)
                            ->setCellValue(‘S1‘,‘持证情况‘)
                            ->setCellValue(‘T1‘,‘所属监管科室‘);
//从数据库取得需要导出的数据
$list=$db->where($where)->select();
//用foreach从第二行开始写数据,因为第一行是表头
$i=2;
foreach($list as $val){
    $phpexcel->getActiveSheet() ->setCellValue(‘A‘.$i,‘吉‘.$val[‘czz_nian‘].$val[‘czz_hao‘])
                            ->setCellValue(‘B‘.$i, $val[‘danwei‘])
                            ->setCellValue(‘C‘.$i, $val[‘faren‘])
                            ->setCellValue(‘D‘.$i, $val[‘dz_chengshi‘])
                            ->setCellValue(‘E‘.$i, $val[‘dz_diqu‘])
                            ->setCellValue(‘F‘.$i, $val[‘dizhi‘])
                            ->setCellValue(‘G‘.$i, $val[‘leibie‘])
                            ->setCellValue(‘H‘.$i, $val[‘beizhu‘])
                            ->setCellValue(‘I‘.$i, $val[‘fazheng‘])
                            ->setCellValue(‘J‘.$i, $val[‘qs_nian‘].‘-‘.$val[‘qs_yue‘].‘-‘.$val[‘qs_ri‘])
                            ->setCellValue(‘K‘.$i, $val[‘zz_nian‘].‘-‘.$val[‘zz_yue‘].‘-‘.$val[‘zz_ri‘])
                            ->setCellValue(‘L‘.$i, $val[‘anquan‘])
                            ->setCellValue(‘M‘.$i, $val[‘zhizheng‘])
                            ->setCellValue(‘N‘.$i, $val[‘fz_nian‘].‘-‘.$val[‘fz_yue‘].‘-‘.$val[‘fz_ri‘])
                            ->setCellValue(‘O‘.$i, $val[‘dianhua‘])
                            ->setCellValue(‘P‘.$i, $val[‘shiyongmianji‘])
                            ->setCellValue(‘Q‘.$i, $val[‘renshu‘])
                            ->setCellValue(‘R‘.$i, $val[‘biangeng‘])
                            ->setCellValue(‘S‘.$i, $val[‘chizheng‘])
                            ->setCellValue(‘T‘.$i, $val[‘keshi‘]);
    $i++;
}

$obj_Writer = PHPExcel_IOFactory::createWriter($phpexcel,‘Excel5‘);
$filename =‘Export‘. date(‘Y-m-d‘).".xls";//文件名

//设置header
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header(‘Content-Disposition:inline;filename="‘.$filename.‘"‘);
header("Content-Transfer-Encoding: binary");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$obj_Writer->save(‘php://output‘);//输出
die();//种植执行

导出的文件预览:

其他的相关属性设置参考(来源于网络资料)

//设置文档基本属性
$objProps = $phpexcel->getProperties();
$objProps->setCreator("章贡区医疗保险局");
$objProps->setLastModifiedBy("章贡区医疗保险局");
$objProps->setTitle("章贡区医疗保险局职工月增减变动报表");
$objProps->setSubject("章贡区医疗保险局职工月增减变动报表");
$objProps->setDescription("章贡区医疗保险局职工月增减变动报表");
$objProps->setKeywords("章贡区医疗保险局职工月增减变动报表");
$objProps->setCategory("变动报表"); 

PHPExcel如何合并/分离单元格

$objPHPExcel->getActiveSheet()->mergeCells(‘A18:E22‘);
$objPHPExcel->getActiveSheet()->unmergeCells(‘A18:E22‘); 

PHPExcel如何设置列宽/行高

$objPHPExcel->getActiveSheet()->getColumnDimension(‘B‘)->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘D‘)->setWidth(12); 
$objPHPExcel->getActiveSheet()->getRowDimension(3)->setRowHeight(16); 

PHPExcel如何设置样式

$objStyleA1 = $phpexcel->getActiveSheet()->getStyle(‘A1‘);
$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   //设置水平对其
$objStyleA1->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);    //设置垂直对其
$objFontA1 = $objStyleA1->getFont(); $objFontA1->setName(‘宋体‘);
$objFontA1->setSize(18); $objFontA1->setBold(true);

PHPExcel如何设置边框

$objActSheet->getStyle(‘A2‘)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle(‘A2‘)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle(‘A2‘)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle(‘A2‘)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );  $objPHPExcel->getActiveSheet()->getStyle(‘D13‘)->getBorders()->getLeft()->getColor()->setARGB(‘FF993300‘);//设置边框颜色

更多资料请百度一下,如有问题欢迎指正!

时间: 2024-08-06 02:44:43

利用PHPExcel将数据导出到xls格式的excel文件的相关文章

c# 用OpenXmL读取.xlsx格式的Excel文件 返回DataTable

1.须要引用的dll :  DocumentFormat.OpenXml.dll  ---须要安装一下OpenXml再引用 WindowsBase  ---直接在项目里加入引用 2.方法: /// <summary> /// 读取.xlsx格式的Excel文件数据,读取其特定名称的工作薄 /// </summary> /// <param name="filePath">文件路径 如 D:\\excel1.xls</param> ///

使用PHPExcel将数据导出至Excel

安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目录,并将其重命名为phpexcel 在项目中需要的地方添加引用 import('phpexcel.PHPExcel', EXTEND_PATH); 代码实现 <?php namespace app\index\controller; use think\Controller; class Excel

使用NPOI将数据导出为word格式里的table

开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. 此Demo托管地址:http://git.oschina.net/uustudy/ExportImportWord.git 另外推荐下NPOI代码托管地址:https://github.com/tonyqus/npoi 作者博客:http://tonyqus.sinaapp.com/ 使用nuget

利用POI将数据导出到EXCEL模板

在开发中导出导入数据,我们是经常用到的,近期,公司开发中需要将指定数据导入到用户给定的EXCEL模板中,并根据要求合并单元格,在这里,我写了个简单的demo,可以概括我所用到的知识点,以供有需要的朋友借鉴. 相关DEMO下载:PoiTest public class Test { public static void main(String[] args) { try{ FileInputStream fis = new FileInputStream("d:/model.xlsx")

C#利用NPOI生成具有精确列宽行高的Excel文件

前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更搞不懂了 //附带SetColumnWidth的用法和注释 [csharp] view plaincopy IWorkbook hssfworkbook = new HSSFWorkbook(); ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1&qu

[PHP Excel 输出]使用 PHP 输出带格式的 Excel 文件

工作中的一点心得,拿出来分享一下. 用 PHP 生成 Excel 文件早已不是什么难题了,但若生成的 Excel 文件没有格式(边框线.居中.字体等),其实就是生成文本文件再用 Excel 打开而已.在 Windows 平台下,可能用 COM 组件可以做到这点,但在 Unix 类系统环境下就没这么幸运了. 首先看一下当时这个新闻吧:http://bbs.chinaunix.net/viewthread.php?tid=204738&highlight=excel [微软发Office免费许可 开

利用os和pandas来合并当前目录下所有excel文件

#1.引入模块 import os import pandas as pd #2.取出指定目录下的全部excel文件路径 path="C:\\TEST" dirlist=[] for dirpath,dirname,filename in os.walk(path): for i in filename: dirlist.append(os.path.join(dirpath,i)) #3.创建一个df对象列表,并进行合并操作 dflist=[] for i in dirlist: d

【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

              本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章目录:http://www.cnblogs.com/asxinyu/p/4374032.html 前一篇文章:“.NET操作Excel利器Spire.Xls使用(1)入门介绍 ”给大家介绍了Spire.XLS的基本功能和一些比较.这篇文章将重点介绍C#操作Excel文件时,对Excel文件本身的相关

通过XML转换下载.xlsx格式的excel文件

在SAP系统中,通过SE11显示一个table的内容,可以发现ALV grid的显示界面上有个spread sheet的标准按钮,点击这个按钮可以将显示的内容下载成excel文件,其中也包括扩展名.xlsx的文件. &lt;img class="alignnone size-full wp-image-2802" src="http://www.baidusap.com/wp-content/uploads/2017-02-04_15-28-29.png"