php原生导出简单word表格(TP为例) (原)
后台:
# 菲律宾名单word导出
public function export_word(){
$tids = $_GET['tids'];
$userinfo=M("philippines_visa")->where(["philippines_id"=>$tids])->select();
foreach ($userinfo as $key => $value) {
$userinfo[$key]['birth'] = explode('-', $value['date_of_birth']); # 出生日期
$userinfo[$key]['birth_m'] = $this->get_month($userinfo[$key]['birth']['1']);#月份英文
$userinfo[$key]['lssue'] = explode('-', $value['lssue_date']); # 签发日期
$userinfo[$key]['lssue_m'] = $this->get_month($userinfo[$key]['lssue']['1']);#月份英文
$userinfo[$key]['expiration'] = explode('-', $value['expiration_date']); # 有效日期
$userinfo[$key]['expiration_m'] = $this->get_month($userinfo[$key]['expiration']['1']);#月份英文
}
$user_info = $userinfo;
$user_info = array_chunk($user_info, 20, true); # 拆分为20个元素一组的多维数组 (需求而已)
$this->assign('user_info',$user_info);
$filename = '名单';
ob_start(); //打开缓冲区
$this->display();
header("Cache-Control: public");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) {
header('Content-Disposition: attachment; filename='.$filename.'.doc');
}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) {
Header('Content-Disposition: attachment; filename='.$filename.'.doc');
} else {
header('Content-Disposition: attachment; filename='.$filename.'.doc');
}
header("Pragma:no-cache");
header("Expires:0");
ob_end_flush();//输出全部内容到浏览器
}
前端页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菲律宾签证</title>
<style>
@page{
margin: 30px;
}
.box{page-break-after:always;}
input{font-family: '宋体';}
table{
border-collapse: collapse; /*设置列、行间距*/
}
table td,table th{
text-align:center;
}
</style>
</head>
<body>
<!-- 名单模板三 -->
<foreach name="user_info" item="user_page" key="key">
<div class="box box7 page" style="border-bottom:none;">
<table>
<tr>
<th style="width:4%;border:1px solid #000"></th>
<th style="width:10%;border:1px solid #000">SURNAME</th>
<th style="width:12%;border:1px solid #000">GIVEN NAME</th>
<th style="width:5%;border:1px solid #000">SEX</th>
<th style="width:5%;border:1px solid #000">(Birth Month) MM</th>
<th style="width:5%;border:1px solid #000">(Birth Day) DD</th>
<th style="width:5%;border:1px solid #000">(Birth Year) YY</th>
<th style="width:12%;border:1px solid #000">Passport Number</th>
</tr>
<tbody class="">
<foreach name="user_page" item="vo" key="k">
<tr>
<td style="border:1px solid #000">{$k+1}</td>
<td style="border:1px solid #000">{$vo.english_name}</td>
<td style="border:1px solid #000">{$vo.english_name_s}</td>
<td style="border:1px solid #000"><eq name='vo.m_sex' value='男'>M<else />F</eq></td>
<td style="border:1px solid #000">{$vo['birth']['1']}</td>
<td style="border:1px solid #000">{$vo['birth']['2']}</td>
<td style="border:1px solid #000">{$vo['birth']['0']}</td>
<td style="border:1px solid #000">{$vo.m_visa_number}</td>
</tr>
</foreach>
</tbody>
</table>
</div>
</foreach>
</body>
</html>
呈现:
php原生导出简单word表格(TP为例) (原)的更多相关文章
- PowerDesiger 15逆向生成工程E-R图及导出word表格
应用环境:win8(64位)+oracle10g(32位)服务端+PowerDesigner15 需求:oracle数据库中的表结构是web工程框架hibernate 自动生成,现需要将数据库中已有的 ...
- Java导出带格式的Excel数据到Word表格
前言 在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用 ...
- 如何通过Java导出带格式的 Excel 数据到 Word 表格
在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法 ...
- mvc中html导出成word下载-简单粗暴方式
由于工作需求,需要把html简历页导出成word下载.网上搜索了很多解决方案,基本都是用一些插件,然后写法也很麻烦,需要创建模板什么的. 固定替换值 代码一大堆.但是对于我的需求来说 并没有什么用 ...
- PHP 导出简单文本内容(word txt等)
PHP导出word文件,简单拓展可导出其他文本类文件 /** * PHP 导出简单文本内容(word txt等) * @param $content mixed 导出内容 (文本string / ht ...
- 如何将mysql表结构导出成Excel格式的(并带备注)另附转为word表格的方法
方法一: 1.使用一个MySQL管理工具:SQLyog,点击菜单栏“数据库”下拉的最后一项: 导出的格式如下: 2.要想转成Excel格式的只需手动将该表复制到Excel中去. 方法二: 1.以下用的 ...
- poi导出word表格详解 超详细了
转:非常感谢原作者 poi导出word表格详解 2018年07月20日 10:41:33 Z丶royAl 阅读数:36138 一.效果如下 二.js代码 function export_word( ...
- poi导出word表格跨行
DataCommon.java package com.ksource.pwlp.model.statistic; public class DataCommon { private Long id; ...
- java导出生成word(类似简历导出)
参考帖子: http://www.cnblogs.com/lcngu/p/5247179.html http://www.cnblogs.com/splvxh/archive/2013/03/15/2 ...
随机推荐
- MySQL 聚合函数(一)聚合(组合)函数概述
MySQL版本:5.7+ 本节介绍对值的集合进行操作的组合(聚合)函数.翻译自:Aggregate (GROUP BY) Function Descriptions 一.MySQL 5.7中的聚合函数 ...
- java实现4种内部排序
两种插入类排序: 直接插入排序: public static void insertSort(int[] arr, int len){ for(int i=1; i<len; i++){ int ...
- Skywalking的增强与拦截机制
整理自架构经理(汤哥)的分享 字节增强条件匹配 在 skywalking 中实现很多基于 byte-buddy 的关于链式匹配查询的实现, 代码如下所示: public abstract class ...
- Sql语句知识大全
1.经典SQL语句大全(绝对的经典) 2. 3. 4.一.基础 1.1.说明:创建数据库 2.CREATE DATABASE database-name 3.2.说明:删除数据库 4.drop dat ...
- 阿里云=>RHSA-2019:1884-中危: libssh2 安全更新
由于项目构建时间比较长,近期安全检查发现openssh有漏洞.所以要升级openssh到7.9p1版本.由于ssh用于远程连接,所以要谨慎操作. 建议生成环境要先做测试,之后再在生产环境升级. 1 前 ...
- WinSockAPI多线程服务器
运行效果: 程序: // TcpServer.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream&g ...
- 1.SpringMVC 概述
SpringMVC 简介 SpringMVC 也叫 Spring web mvc ,属于表现层的框架.SpringMVC 是 Spring框架的一部分,是在Spring3.0后发布的 第一个Sprin ...
- 什么时候用assert
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制.在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证 ...
- Swift Review总结一:从 Swift Style 开始
最近凑了几个热心的小伙伴写一些Swift的新手demo(两周后应该能和大家见面了),我参与了review.于是借demo里的代码总结一下新手写Swift要注意的问题,尤其是从oc转到用swift写的开 ...
- Jmeter中间件处理-ActiveMQ
消息队列是目前的主流中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况.本文以Activemq的Topic为例,说明如何基于Jmeter实现消息队列数据的发送和 ...