<?php
header("Content-type: text/html; charset=gb2312");
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); date_default_timezone_set('Europe/London'); /** PHPExcel_IOFactory */
require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');
//设置模板文件
$objPHPExcel = $objReader->load("templates/bills.xls");
//将json字符串转换为数组
$billData = json_decode($_REQUEST["billData"],true);
//填充单元格
$objPHPExcel->getActiveSheet()->setCellValue('B4', $billData['party'])
->setCellValue('B5', $billData['game'])
->setCellValue('A9', $billData['month'])
->setCellValue('I28', $billData['total'])
->setCellValue('H30', $billData['partyaccount']['name'])
->setCellValue('H31', $billData['partyaccount']['bank'])
->setCellValue('H32', $billData['partyaccount']['account'])
->setCellValue('H33', $billData['partyaccount']['address'])
->setCellValue('H34', $billData['partyaccount']['contactpeople']) ->setCellValue('H35', $billData['partyaccount']['contacttel']); //循环填充相同标题单元格
$row=11;
foreach($billData['bills'] as $r => $dataRow) {
$objPHPExcel->getActiveSheet()->setCellValue('B'.$row, $dataRow['cardtype'])
->setCellValue('c'.$row, $dataRow['orderamount'])
->setCellValue('D'.$row, $dataRow['feerate'])
->setCellValue('E'.$row, $dataRow['fee'])
->setCellValue('F'.$row, $dataRow['amount'])
->setCellValue('G'.$row, $dataRow['partyratio'])
->setCellValue('H'.$row, $dataRow['partynumber'])
->setCellValue('I'.$row, $dataRow['partyamount'])
->setCellValue('J'.$row, $dataRow['memo']);
$objPHPExcel->getActiveSheet()->getStyle('c'.$row)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$row++;
} $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $str= mb_convert_encoding("out/bill_".$billData['party'].'_'.$billData['game'].'_'.$billData['month'].".xls","gb2312","UTF-8");
$objWriter->save($str);
//让访问浏览器直接下载文件流
Header("Location: /out/bill_".$billData['party'].'_'.$billData['game'].'_'.$billData['month'].".xls");

PHPexcel数据按模板导出的更多相关文章

  1. 使用PHPExcel实现Excel文件的导入和导出(模板导出)

    在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但是有缺点是:1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽度 ...

  2. PHPexcel数据导出

    使用PHPexcel数据导出,可以从网上下载phpexcel引入使用,下面是我做的简单的数据导出练习 一.下载phpexcel 二.引发这个导出(我这里是写了一个简单的点击事件) <div id ...

  3. phpexcel 使用模板导出报表

    function exportExcel($list, $filename, $indexKey = array()){ require_once(getcwd() . '../../app/Libs ...

  4. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  5. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  6. 使用phpExcel实现Excel数据的导入导出(完全步骤)

    使用phpExcel实现Excel数据的导入导出(完全步骤)   很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人 ...

  7. phpexcel如何读取excel的数据和如何导出数据到excel

    phpexcel如何读取excel的数据和如何导出数据到excel 一.总结 一句话总结:去官网看参考手册和api,或者找中文的博客或者参考手册 1.phpexcel插件如何下载? 其实这些插件不仅可 ...

  8. 利用PHPExcel 实现excel数据的导入导出(源码实现)

    利用PHPExcel 实现excel数据的导入导出(源码实现) 在开发过程中,经常会遇到导入导出的需求,利用phpexcel类实现起来也是比较容易的,下面,我们一步一步实现 提前将phpexcel类下 ...

  9. kettle 使用excel模板导出数据

    通过excel进行高速开发报表: 建设思路: 1.首先制订相关的execl模板. 2.通过etl工具(kettle)能够高速的 将数据库中的数据按excel模板导出成新的excel就可以. 当中ket ...

随机推荐

  1. [BZOJ 1042] [HAOI2008] 硬币购物 【DP + 容斥】

    题目链接:BZOJ - 1042 题目分析 首先 Orz Hzwer ,代码题解都是看的他的 blog. 这道题首先使用DP预处理,先求出,在不考虑每种硬币个数的限制的情况下,每个钱数有多少种拼凑方案 ...

  2. MIT教授将网页开发整合为完整独立的程式语言Ur/Web

    MIT 的软体技术教授 Adam Chlipala 设计了新的 Ur/Web 程式语言,这是一个整合 HTML.CSS.XML.SQL 及 JavaScript 等网路标准的“完整独立”语言,强调快速 ...

  3. iOS环形控制器、环形按钮

    这两天接手了一个外包的UI,有一个环形的控制器,需求改啊改的:“安卓已经实现了……”,最讨厌这句了,最后做了一版,对方终于满意了,删掉其他的繁琐部分,留下控制器部分,大家看看,有更好的想法欢迎分享. ...

  4. JS实现点击按钮,自增输入框个数

    <html> <head> <script language="javascript"> var i=0; function addinput( ...

  5. java学习之break 和 continue

    java当中比较特殊的两个关键字:break,continue.从字面意思来看的话break就是打断的意思,而continue就是继续的意思. 这两个关键词用途范围是很明确的: break:只能用在s ...

  6. 【JavaScript】

    右键禁用.防止文字选中 .返回选中的文本 JavaScript 原理 Javascript高性能动画与页面渲染 前端不为人知的一面--前端冷知识集锦 屏幕外去计算值,position:absolute ...

  7. 【转】java中byte数组与int类型的转换(两种方式)----不错

    原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...

  8. wp8模拟器中使用电脑键盘和模拟器的版本解释

    一:如图启用和关闭 二:电脑按键对应的手机的按键 三:模拟器的版本解释

  9. 吐血原创:mini2440和win7笔记本利用无路由功能的交换机共享上网(使用x-router软路由)

    真的是要吐血了,为了使自己的win7系统笔记本和mini2440,通过交换机(没有路由功能,才5口,和HUB差不多)共享宽带上网,并且连接上的宽带还是长城宽带,我用尽各种cmd命令都查不到长城宽带的默 ...

  10. NOI题库1799 最短前缀

    1799:最短前缀 总时间限制: 1000ms 内存限制: 65536kB 描述 一个字符串的前缀是从该字符串的第一个字符起始的一个子串.例如 "carbon"的字串是: &quo ...