php excel多,PHPExcel多表单数据导出
namespace app\excel;
use PHPExcel;
use PHPExcel_IOFactory;
class ExcelMultiSheetHelper
{
/**
* 多表单数据导出
* @param $data
* $data = [
* [
* 'title' => 'sheet1',
* 'list' =>
* [
* ['name' => 'sheet1_line1_name', 'item' => 'sheet1_line1_item'],
* ['name' => 'sheet1_line2_name', 'item' => 'sheet1_line1_item']
* ],
* 'column' =>
* [
* 'A' => ['title' => 'title_name', 'field' => 'name'],
* 'B' => ['title' => 'title_item', 'field' => 'item']
* ],
* ],
* [
* 'title' => 'sheet2',
* 'list' => [
* ['name' => 'sheet2_line1_name', 'item' => 'sheet2_line1_item'],
* ['name' => 'sheet2_line2_name', 'item' => 'sheet2_line1_item']
* ],
* 'column' =>
* [
* 'A' => ['title' => 'title_name', 'field' => 'name'],
* 'B' => ['title' => 'title_item', 'field' => 'item']
* ],
* ],
* ];
* @param string $fileName
*/
public static function exportToExcel($data, $fileName = '数据导出')
{
$objPHPExcel = new PHPExcel(); //实例化Excel类
foreach ($data as $key => $value) {
$objPHPExcel->createSheet($key);
$objPHPExcel->setActiveSheetIndex($key);
$activeSheet = $objPHPExcel->getactivesheet();
$activeSheet->setTitle($value['title']);
$column = $value['column'];
$list = $value['list'];
foreach ($list as $kk => $vv) {
$line = $kk + 2;
foreach ($column as $kkk => $vvv) {
$title = $vvv['title'];
$field = $vvv['field'];
$activeSheet->getColumnDimension($kkk)->setWidth(15); //设置单元格宽
$fieldData = !empty($vv[$field]) ? $vv[$field] : '';
$activeSheet->getStyle($kkk . 1)->getFont()->setName('宋体')->setBold(true); //字体加粗; //字体
$activeSheet->setcellvalue($kkk . 1, $title);//第A列 第1行,标题
$activeSheet->setcellvalue($kkk . $line, $fieldData);//第A列 第$k行
}
}
}
if ($objPHPExcel->getSheetCount() > 1) {
$objPHPExcel->removeSheetByIndex($objPHPExcel->getSheetCount() - 1); //删除模板sheet
}
//最后通过浏览器输出
static:: responseExcelFile($fileName, $objPHPExcel, 'Excel5');
exit;
}
/**
* 最后通过浏览器输出
* @param $fileName
* @param $objPHPExcel
* @param string $excelVersion
*/
public static function responseExcelFile($fileName, $objPHPExcel, $excelVersion = 'Excel5')
{
if (static:: isIE()) {//解决文件名含中文时下载乱码问题。测试浏览器:IE8\IE11\Chrome41\Firefox38
$fileName = urlencode($fileName);
}
$fileName .= $excelVersion === 'Excel5' ? '.xls' : '.xlsx';
ob_end_clean();
ob_start();
//添加fileDownload cookie便于jquery.fileDownload.js判断下载状态
header('Set-Cookie: fileDownload=true; path=/');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $excelVersion);
$objWriter->save('php://output');
}
/**
* 判断当前请求浏览器是否IE
* @return bool
*/
private static function isIE()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
return (preg_match('/MSIE/i', $u_agent) || preg_match('/Trident/i', $u_agent)) && !preg_match('/Opera/i', $u_agent);
}
}
参考博客
php excel多,PHPExcel多表单数据导出相关推荐
- php表单生成Excel,PHPExcel多表单数据导出
namespace app\excel; use PHPExcel; use PHPExcel_IOFactory; class ExcelMultiSheetHelper { /** * 多表单数据 ...
- php自定义表单怎么导入excel,织梦dedeCMS将自定义表单数据导入到excel文档实现方法...
这篇文章主要为大家详细介绍了织梦dedeCMS将自定义表单数据导入到excel文档实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 织梦的自定义表单适用起 ...
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】...
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- android 生成多个表单,Android根据word模板文档将表单数据生成word文档的方案整理...
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: poi 解析doc文件可 ...
- python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法
python 实现读取一个excel多个sheet表并合并的方法 如下所示: import xlrd import pandas as pd from pandas import DataFrame ...
- php将表单数据存入数据库,php将表单中数据传入到数据库
无标题文档//创建表单 姓名 header("Content-type:text/html;charset=utf-8"); if(isset($_POST['submit'])) ...
- CI框架导出多个mysql查询结果到excel多个sheet表 各大量数据导入(数以万计)
mysql表结构 导出各班成绩到不同sheet表 public function testPHPExcel(){set_time_limit(0);//防止超时ini_set("memory ...
- ajax异步提交 java_jquery ajax异步提交表单数据的方法
使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...
- 数据验证html,JavaScript 表单数据验证
JavaScript 表单 HTML 表单验证可以通过 JavaScript 来完成. HTML 表单验证也可以通过浏览器来自动完成. 如果表单字段 (fname) 的值为空, required 属性 ...
最新文章
- Java中public,private,protected以及default的访问权限区别
- day31 Pyhton 面向对象的基础 三大特性
- 树哈希判断同构无根同构问题转有根同构问题
- activiti5.22 springboot 流程引擎 实战全过程
- (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
- Java Virtual Machine报错:A Java Exception has occured
- php 第二次出现位置,php – Preg Replace – 替换匹配的第二次出现
- CodeIgniter典型的表单提交验证代码
- 囚徒困境(博弈论的诡计)
- 投标文件模板 | 信息化智慧校园项目投标方案 | word版
- Qwins系统工具v1.3.0绿色版
- python 查看文件夹大小
- vue实现前端页面缓存
- 读论文,第十六天:FrownOnError: Interrupting Responses from Smart Speakers by Facial Expressions
- ParticleDesigner 粒子编辑器使用
- [WPF] WPF浏览器程序:如何发布并解决不信任程序问题
- D3.js 绘制立体柱状图
- ubuntu18纯净系统个人配置
- Windows:kibana 源码本地编译--v6.4.1
- 企业信息化不可缺少之方正OA
热门文章
- Java基于springboot+vue的电子相册管理系统 前后端分离node
- 如何做好“全面”预算管理?提升企业综合竞争力
- 云计算之 PaaS详解
- 【Linux】/lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found
- Maven中央仓库连接不上的问题解决
- 如何读/写论文???
- checksum命令 linux_数字签名及 Checksum 校验和
- geojson 包含道路_GeoJSON介绍
- 一个关于C语言程序指针的用法(其中之一·)
- c语言logout_用C语言编写一个Linux下的简单shell程序