`
nedvedheqing
  • 浏览: 103736 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP 输出带格式的 Excel 文件

    博客分类:
  • PHP
阅读更多

第一步:生成一个excel的xml模板,保存为excel-xml.tpl

 

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>Diana</Author>
  <LastAuthor>Diana</LastAuthor>
  <Created>2006-04-25T11:58:52Z</Created>
  <LastSaved>2006-04-25T13:10:20Z</LastSaved>
  <Version>11.5606</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>12495</WindowHeight>
  <WindowWidth>16035</WindowWidth>
  <WindowTopX>0</WindowTopX>
  <WindowTopY>105</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Center"/>
   <Borders/>
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s21">
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="18" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s29">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
   </Borders>
  </Style>
  <Style ss:ID="s35">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
   </Borders>
   <NumberFormat ss:Format="@"/>
  </Style>
</Styles>
<Worksheet ss:Name="Sheet1">
  <Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="21" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="17.25">
   <Column ss:AutoFitWidth="0" ss:Width="36"/>
   <Column ss:AutoFitWidth="0" ss:Width="69"/>
   <Column ss:AutoFitWidth="0" ss:Width="78.75"/>
   <Row ss:Height="22.5">
    <Cell ss:StyleID="s21"><Data ss:Type="String">员工信息表</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0"/>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s29"><Data ss:Type="String">序号</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">工号</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">姓名</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">性别</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">年龄</Data></Cell>
   </Row>
 {section name=list loop=$Emps}
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s29"><Data ss:Type="Number">{$smarty.section.customer.rownum}</Data></Cell>
    <Cell ss:StyleID="s35"><Data ss:Type="String">{$Emps[list].id}</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">{$Emps[list].name}</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="String">{$Emps[list].sexual}</Data></Cell>
    <Cell ss:StyleID="s29"><Data ss:Type="Number">{$Emps[list].age}</Data></Cell>
   </Row>
   {/section}
  </Table>
</Worksheet>
</Workbook>

 说明:上面的模板里用到了smarty的标签,要使用上面的模板,请通过smarty来调用。

 

 

第二步:

   生成一个测试用的php文件,excel.php

<?php
        // 实验资料,实际作业中,这里应该是从数据库取得资料
        $emps[0]['id'] = '00001';
        $emps[0]['name'] = 'ABC';
        $emps[0]['sexual'] = '男';
        $emps[0]['age'] = 28;

        $emps[1]['id'] = '00002';
        $emps[1]['name'] = 'BBC';
        $emps[1]['sexual'] = '男';
        $emps[1]['age'] = 23;

        $emps[2]['id'] = '00003';
        $emps[2]['name'] = 'CBA';
        $emps[2]['sexual'] = '女';
        $emps[2]['age'] = 20;
      
        ini_set('include_path', '/data/website/htdocs/includes');
        require_once('Smarty.php');
        $smarty = new Smarty();

        $smarty->assign('Emps', $emps);

        // 输出文件头,表明是要输出 excel 文件
        header("Content-type: application/vnd.ms-excel");
        header("Content-Disposition: attachment; filename=test.xls"); 
        $smarty->display('excel-xml.tpl');
?>

 

 

   最后生成的excel效果:

 

 

  • 大小: 34.9 KB
分享到:
评论

相关推荐

    PHP常用开发功能-ThinkPHP实现数据导出为Excel文件的PHPExcel类库文件

    ThinkPHP实现数据导出为Excel文件的PHPExcel类库文件

    excel_class(1).rar_excel_php excel

    php对excel文件的读入、编辑和输出

    phpexcel导出带有背景颜色的表格_20180519.php

    引用phpexcel 导出带有背景颜色的excel,自定义背景颜色

    php常用代码(分页,excel,图片缩放,汉字编码)

    1 advance_fenye2.0.php 一个分页的类,非常实用 2 char.php 汉字编码解决 3 class-excel-xml.inc.php excel文件生成类 4 image.php 图片缩放类

    PHP EXCEL导出类PHP_XLSXWriter 0占用内存秒速度

    PHP_XLSXWriter 旨在输出(Office 2007+)xlsx格式的Excel兼容电子表格,持基本的单元格样式,支持编写巨大的100K +行电子表格,支持货币/日期/数字单元格格式,简单公式,多个工作表,占用内存小速度快,本资源已...

    Excel读写控件

    后输出结果是报表,对很多用户而言,他们希望该报表能够转化到Excel文件中。目前技术人员读写Exc el文件可以采用ODBC接口,Excel VBA宏及直接分析Excel文件格式等方法,前两种方法功能弱,不能获 取Excel文件的...

    PHP实现导出MySQL数据到excel

    PHP实现导出MySQL数据到excel ...本案例主要使用PHP 7中的PDO数据对象对MySQL数据库进行查询操作,实现数据库中数据的获取,同时使用header()函数来设置文件的输出类型,从而实现导出MySQL数据到excel的功能。

    PHP导出MySQL数据到Excel文件(fputcsv)

    这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。 复制代码 代码如下: // 输出Excel文件头,可把user.csv换成你要的文件名 header(‘Content-Type: application/vnd.ms-excel’); header(...

    golang与PHP输出excel示例

    主要介绍了golang与PHP输出excel的方法,结合实例形式对比分析了Go语言及php输出Excel文件的相关技巧,需要的朋友可以参考下

    php_excel, 用于Excel写作/阅读库的PHP扩展界面.zip

    php_excel, 用于Excel写作/阅读库的PHP扩展界面 描述这里扩展使用libXl库提供用于生成或者解析所有Excel文件的API 。libxl是一种高效的处理Excel文件的机制,能够在黑莓。iPhone 。Office 产品。数字和 等等 上生成...

    PHP导出带样式的Excel示例代码

    在大家工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了。这时候就需要设置颜色、字号大小、加粗、合并单元格等等。这篇文章通过实例告诉大家怎么做,下面来一起看看。 先来看看效果图: ...

    php把Excel导mysql

    //”data.xls”是指要导入到mysql中的excel文件 $data-&gt;read('test.xls'); @ $db = mysql_connect('localhost', 'root', 'root') or die("Could not connect to database.");//连接数据库 mysql_query("set names...

    PHP实现实时生成并下载超大数据量的EXCEL文件详解

    而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出流边让浏览器下载的形式来完成需求。 我们通过如下的方式写入PHP...

    两个开源的Php输出Excel文件类

    1.php-excel php-excel is a very simple library for generating excel documents from php on-the-fly. http://code.google.com/p/php-excel/软件开发网下载https://www.jb51.net/codes/24319.html2.PHPExcel ...

    PHP实现导出MySQL数据到excel1

    二、主要技术本案例主要使用PHP 7中的PDO数据对象对MySQL数据库进行查询操作,实现数据库中数据的获取,同时使用header()函数来设置文件的输出类型,

    完美解决php 导出excle的.csv格式的数据时乱码问题

    1、header(‘Content-Encoding: XXXX’); 有可能是编码问题:可以尝试UTF-8,GBK,GB2312,等编码格式 ... 您可能感兴趣的文章:php实现批量上传数据到数据库(.csv格式)的案例php将数组转换成csv格式文件输出的

    通过table标签,PHP输出EXCEL的实现方法

    第一句是用来声明文件内容的格式;第二局是用来修改文件名的。如果没有第二个语句的话,生成的文件将是没有后缀名的。实现代码:复制代码 代码如下:&lt;meta http-equiv=”Content-Type” content=”text/html; ...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程47:PHP输出CSV和EXCEL两种简单的方法 PHP100视频教程48:Ajax+PHP快速上手及应用 PHP100视频教程49: Ajax+PHP打造等待进度条效果(二) PHP100视频教程50: Ajax+PHP检查用户名或邮件(三) ...

    PHPEXCEL在PHP中操作excel的工具

    PHPExcel是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐。列举以记之。  -- PHP Code --  &lt;?  //设置PHPExcel...

Global site tag (gtag.js) - Google Analytics