PHP-Excel

标签(空格分隔): php


类库下载地址:https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8

php导出excel表格数据的基本实现

实现步骤:

1 把文件夹放到extend目录下
2 import助手函数导入类
3 设置excel表头
4 填充数据

注意事项:

1 数据从第二行开始填充

ThinkPHP5示例:

# 公共方法
public function phpExcel($title, $list, $fileName)
{
import('PHPExcel.Classes.PHPExcel');
import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
$PHPExcel = new \PHPExcel;
$PHPSheet = $PHPExcel->getActiveSheet();
foreach ($list as $k => $v) {
# code...
foreach ($title as $key => $value) {
if ($k == 0) {
$PHPSheet->setCellValue($key.'1', end($value));
}
$i = $k + 2;
$PHPSheet->setCellValue($key.$i, $v[reset($value)]);
}
}
$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$fileName.'.xlsx');
header("Content-Transfer-Encoding:binary");
$PHPWriter->save("php://output");
} # 调用方法:
public function main()
{
$title = [
'A' => ['id', 'ID'],
'B' => ['nickname', '昵称'],
'C' => ['phone', '手机号'],
'D' => ['avatar', '头像'],
'E' => ['profile', '个人签名'],
'F' => ['token', '用户唯一标识'],
'G' => ['sex', '性别'],
'H' => ['status', '状态'],
'I' => ['to_host', '主办方id']
];
$field = 'id, nickname, phone, avatar, profile, token, sex, status, to_host';
$list = Db::table('t_user')->field($field)->limit(10)->select(); $fileName = '测试'.date('Y-m-d');
$this->excel($title, $list, $fileName);
}

读取excel文件返回数组

$objReader = PHPExcel_IOFactory::createReaderForFile($file);

    //判断这个对象是否等于某个类
if ($objReader instanceof Csv) {
$objReader->setDelimiter(',') -> setInputEncoding('GBK');
}
//文件临时路径
$filename = $file; $objPHPExcel = $objReader->load($filename); //$filename可以是上传的表格,或者是指定的表格 $sheet = $objPHPExcel->getSheet(0); //excel中的第一张sheet $highestRow = $sheet->getHighestRow(); // 取得总行数
//$highestColumn = $sheet->getHighestColumn(); // 取得总列数 $sheetdata = $sheet->toArray();
if (!empty($count)) {
if ($highestRow > $count) {
$data = array_slice($sheetdata, 1, $count);
} else {
$data = array_slice($sheetdata, 1, $highestRow);
$count = $highestRow - 1;
}
return array('list' => $data, 'count' => $count);
}
return array('list' => $sheetdata, 'count' => $highestRow);

ThinkPhp5-PHPExcel导出数据的更多相关文章

  1. php利用phpexcel导出数据

    php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关 ...

  2. php 使用PHPExcel 导出数据为Excel

    <?php require_once 'PHPExcel/Classes/PHPExcel.php'; /** * 导出数据为Excel * @param array $fieldArr 标题数 ...

  3. PHPExcel 导出数据(xls或xlsx)- 助手类(函数)

    本文链接:https://www.cnblogs.com/tujia/p/11358096.html 说明:简单好用的导出助手,轻松导出数据到 excel !! 使用示例: Example: Exce ...

  4. Thinkphp解决phpExcel导出数据量大导致内存溢出

    工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力, ...

  5. phpexcel导出数据 出现Formula Error的解决方案

    phpexcel导出数据报错 Uncaught exception 'Exception' with message 'Sheet1!A1364 -> Formula Error: Unexpe ...

  6. phpexcel导出数据表格

    1.下载phpexcel(李昌辉) 2.在页面引入phpexcel的类文件,并且造该类的对象 include("../chajian/phpexcel/Classes/PHPExcel.ph ...

  7. thinkphp中使用PHPEXCEL导出数据

    thinkphp中导出二维数组到Excel 1.解决时间长度导致EXCEL出现###问题 2.解决长数值型 带来的科学记数法导出问题 订单号不再变为科学记数法 而是直接字符串类型 代码如下: < ...

  8. 使用PHPExcel导出数据

    最近要求做增加客流数据等导出为Excel的功能,phpExcel包功能强大,根据实际需求,我只学习了简单的功能. 安装PHPExcel 在composer.json中添加: "require ...

  9. PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1

    http://blog.csdn.net/dl425134845/article/details/46650961 以下是解决方案函数 /** *   方法名:    getExcel *   作用  ...

  10. PHP:引用PhpExcel导出数据到excel表格

    我使用的是tp3.2框架(下载地址:http://www.thinkphp.cn/topic/38123.html) 1.首先要下载PhpExcel类库,放在如下图目录下 2.调用方法 public ...

随机推荐

  1. servlet调用的几种方式

    參见 文库/java/javaEE全新学习教程2.2节 1.通过URL调用 2通过提交表单 3超链接 4 javascript写一个函数,调用这个函数 1,首先在project的WebRoot目录下建 ...

  2. event内存泄漏

    C#内存泄漏--event内存泄漏 内存泄漏是指:当一块内存被分配后,被丢弃,没有任何实例指针指向这块内存, 并且这块内存不会被GC视为垃圾进行回收.这块内存会一直存在,直到程序退出.C#是托管型代码 ...

  3. hiho 1572 - set.upper_bound,排序树

    链接 小Hi家的阳台上摆着一排N个空花盆,编号1~N.从第一天开始,小Hi每天会选择其中一个还空着花盆,栽种一株月季花,直到N个花盆都栽种满月季. 我们知道小Hi每天选择的花盆的编号依次是A1, A2 ...

  4. 关于RoI pooling 层

    ROIs Pooling顾名思义,是pooling层的一种,而且是针对ROIs的pooling: 整个 ROI 的过程,就是将这些 proposal 抠出来的过程,得到大小统一的 feature ma ...

  5. c标签迭代Map

    <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" ...

  6. [洛谷P1750]KC喝咖啡

    题目大意:给你n个物品,每个物品有一个价值$v_i$和一个时间$t_i$,要你取m个物品,使得他们的美味度($\frac{\sum v_i}{\sum t_i}$)最大,求这个美味度. 解题思路:由于 ...

  7. windows下安装redis以及测试 Window 下安装

    下载地址:https://github.com/dmajkic/redis/downloads. 下载到的Redis支持32bit和64bit.根据自己实际情况选择,将64bit的内容cp到自定义盘符 ...

  8. Linux系统下安装配置 OpenLDAP + phpLDAPadmin

    实验环境: 操作系统:Centos 7.4 服务器ip:192.168.3.41 运行用户:root 网络环境:Internet LDAP(轻量级目录访问协议)是一个能实现提供被称为目录服务的信息服务 ...

  9. 动态Axios配置

    推荐使用Vue-cli工具来创建和管理项目,就算刚开始不熟悉,用着用着便可知晓其中的奥妙.前一段时间官方所推荐的数据请求插件还是Vue-resource,但现在已经变了,变成了Axios,不用知道为什 ...

  10. Mysql学习总结(23)——MySQL统计函数和分组查询

    1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) from tablename: 这 ...