PHP Smarty生成EXCEL文档的代码

不过,跟据我的试验,如果你不删除一个地方,生成的文档用 excel 打开,是会报错的!

删除所有像这样的串: ss:ExpandedColumnCount="5" 就行了!

示例:

随便填点数据,然后提交,会生成一份 xls 文件。

还有一个小问题没有找出来,这个模板,只能有两笔数据,多了也不行,晕,还没有找到要修改哪里呢。

另外,我开始是把 formValidate.php 和 report.php合在一起写的,结果是没有结果!
分开写,就有结果了!

report.php


代码如下:

<?php
include '../common.inc.php';

$token = $_POST['token'];

if(GToken::isToken($token,'REPORT')){
$names = $_POST['name'];
$birthdays = $_POST['birthday'];
$phones = $_POST['phone'];
$sexs = $_POST['sex'];
$emails = $_POST['email'];
$scoreAs = $_POST['scoreA'];
$scoreBs = $_POST['scoreB'];
$scoreCs = $_POST['scoreC'];

$list = array();
$score = array();

for($i=0;$i<sizeof($names);$i++){
$arr = array(
'name' => $names[$i],
'sexs' => $sexs[$i],
'birthday' => $birthdays[$i],
'email' => $emails[$i],
'phone' => $phones[$i]
);
array_push($list,$arr);
unset($arr);

$arr = array(
'name' => $names[$i],
'scoreA' => $scoreAs[$i],
'scoreB' => $scoreBs[$i],
'scoreC' => $scoreCs[$i]
);
array_push($score,$arr);
unset($arr);
}

include '../lib/smarty/Smarty.class.php';
$gmt = GSmarty::getInstance('test');
$gmt->assign_by_ref("list",$list);
$gmt->assign_by_ref('score',$score);

header("Cache-Control: public");
header('content-type:application/vnd.ms-excel');
header("Content-Disposition:attachment; filename=report.xls");
$gmt->display('report');
}
?>

header("Cache-Control: public");
这一定要加,不然的话,在IE下会发生错误。

(0)

相关推荐

  • PHP生成excel时单元格内换行问题的解决方法

    翻出来源码开了下,字符串中使用换行的方法为"Name:{$name}\nAddress:{$adress}\nCity:{$city}\nCountry:{$country}\n ......" 既然"\n"起不到换行的目的,修改成"\r\n"看看. 修改 => 提交 =>测试 得出的结果还是 没有换行!!!! 难道是操作系统兼容问题?? 直接使用php runtime 常量 PHP_EOL 替代 "\r\n" 修

  • 用PHP生成excel文件到指定目录

    最近公司要生成报表,用PHP生成. header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=test_data.xls"); 我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方, 我想把生成的文件生成到指定的目录,这样能否实现呢? 还有,可以往里面插入图片吗? PHPExcel是英文的,看了半天没看懂.有没

  • php生成excel列名超过26列大于Z时的解决方法

    本文实例讲述了php生成excel列名超过26列大于Z时的解决方法.分享给大家供大家参考.具体分析如下: 我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下: 复制代码 代码如下: public static function stringFromColumnIndex($pColumnIndex = 0)  {          //  Using a lookup

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

    前言 最近在工作中接到一个需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况.而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出流边让浏览器下载的形式来完成需求. 我们通过如下的方式写入PHP输出流 $fp = fopen('php://output', 'a'); fputs($fp, 'strings'); .... ...

  • php下载excel无法打开的解决方法

    php下载excel文件,1.在下载的过程中不要 输出任何非文件信息,比如 echo log信息. 否则下载后的文件无法打开,提示格式错误或者文件被破坏.2. 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏 复制代码 代码如下: if (file_exists(CACHE_PATH . $file_name)){            //$this->logger->error('file realpath:'.realpath(CACHE_PATH . $fi

  • php生成excel列序号代码实例

    复制代码 代码如下: public function loop(){  $loop = 0;  $charnum = 65; for(; $loop < 150; $loop++){   $quotient = intval($loop / 26);   $remainder = $loop % 26; $f = $quotient>0? chr($charnum+$quotient-1) : '';   $s = $remainder>=0? chr($charnum+$remaind

  • php生成excel文件的简单方法

    生成excel 当然使用的是 phpExcel这个类库了,可是它太麻烦了,对于只要简单生成来说有点不值得 什么叫简单,把数据库的数据导入到excel就行了, 这个就是简单了 下面看一段代码(代码来自网络) 注意要双引号的字符串 复制代码 代码如下: <?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=test.xls"); ech

  • PHP Smarty生成EXCEL文档的代码

    不过,跟据我的试验,如果你不删除一个地方,生成的文档用 excel 打开,是会报错的! 删除所有像这样的串: ss:ExpandedColumnCount="5" 就行了! 示例: 随便填点数据,然后提交,会生成一份 xls 文件. 还有一个小问题没有找出来,这个模板,只能有两笔数据,多了也不行,晕,还没有找到要修改哪里呢. 另外,我开始是把 formValidate.php 和 report.php合在一起写的,结果是没有结果! 分开写,就有结果了! report.php 复制代码

  • java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在Java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后台利用Apache poi 生成excel文档提供前台下载之后就想着来写一篇姊妹篇啦. 在生成Excel文档的时候我采用了和生成Word时的不同方法,Apache poi.它是用Java编写的免费开源的跨平台的 Java API,提供API给Java程式对Microsoft Office格式档案读和

  • Golang生成Excel文档的方法步骤

    基于数据生成 Excel 文档是一个很常见的需求,本文将介绍如何使用 Go 的 Excelize库去生成 Excel 文档,以及一些具体场景下的代码实现. 关于 Excelize 库 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档.支持 XLSX / XLSM / XLTM / XLTX 等多种文档

  • 利用Java Apache POI 生成Word文档示例代码

    最近公司做的项目需要实现导出Word文档的功能,网上关于POI生成Word文档的例子很少,找了半天才在官网里找到个Demo,有了Demo一切就好办了. /* ==================================================================== Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See

  • Codeigniter生成Excel文档的简单方法

    之前看了使用PHPExcel中导出数据到Excel文件的方法,但是似乎比较复杂.icech找到了一个针对Codeigniter的类:CI-Excel-Generation-Library,使用方法十分简单. 1.下载CI-Excel-Generation-Library地址:https://github.com/JOakley77/CI-Excel-Generation-Library2.将Excel.php放到libraries里面 3.使用方法: 从数据库生成excel 复制代码 代码如下:

  • C#实现文件上传下载Excel文档示例代码

    要求 环境信息:WIN2008SERVER  开发工具:VS2015 开发语言:C# 要求: 1.点击同步数据后接口获取数据展示页面同时过滤无效数据并写入数据库,数据可导出Excel并支持分类导出 2.Excel导入确认数据,调用服务处理数据后写入数据库,并支持分类导出 这两天搞了一个小功能,其他的不说了针对Excel导入导出做一个小总结 导出文件 这里的文件导出是底层写好的,个人理解有限而且毕竟属于公司就不贴具体代码了,简单说一下思路 首先是建立导出Excel管理类,用于管理Excel文件导出

  • JSP生成WORD文档,EXCEL文档及PDF文档的方法

    本文实例讲述了JSP生成WORD文档,EXCEL文档及PDF文档的方法.分享给大家供大家参考,具体如下: 在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来,并以word文档的形式展现,有时许多word文档保存到数据库中的某个表的Blob字段里,服务器再把保存在Blob字段中的图片文件展现给用户.通过网上查找发现很少有关于此类的文章,现在整理起来供大家参考. 1 在client端直接生成word文档 在jsp页面上生成word文档非常简单,只需把conte

  • libreoffice python 操作word及excel文档的方法

    1.开始.关闭libreoffice服务: 开始之前同步字体文件时间,是因为创建soffice服务时,服务会检查所需加载的文件的时间,如果其认为时间不符,则其可能会重新加载,耗时较长,因此需事先统一时间. 使用时如果需要多次调用,最后每次调用均开启后关闭,否则libreoffice会创建一个缓存文档并越用越大,处理时间会增加. class OfficeProcess(object): def __init__(self): self.p = 0 subprocess.Popen('find /u

  • python实现word文档批量转成自定义格式的excel文档的思路及实例代码

    支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符 最近在开发一个答题类的小程序,到了录入试题进行测试的时候了,发现一个问题,试题都是word文档格式的,每份有100题左右,拿到的第一份试题,光是段落数目就有800个.而且可能有几十份这样的试题. 而word文档是没有固定格式的,想批量录入关系型数据库mysql,必须先转成excel文档.这个如果是手动一个个粘贴到excel表格,那就头大了. 我最终需要的excel文档结构是这样的:每道题独立占1行,每1列是这道题的一项内

  • php将数据库中所有内容生成静态html文档的代码

    复制代码 代码如下: <?php /* author:www.5dkx.com done:生成html文档 date:2009-10-27 */ require_once("conn.php"); if($_GET['all']) { /*获取数据库记录,以便于生成html文件有个文件名*/ $sqlquery = "select * from $tbname"; $result = mysql_query($sqlquery,$conn)or die(&qu

随机推荐