数组转xls格式的excel文件&数据转csv格式的excle
- /**
- * 数组转xls格式的excel文件
- * @param array $data 需要生成excel文件的数组
- * @param string $filename 生成的excel文件名
- * 示例数据:
- $data = array(
- array(NULL, 2010, 2011, 2012),
- array('Q1', 12, 15, 21),
- array('Q2', 56, 73, 86),
- array('Q3', 52, 61, 69),
- array('Q4', 30, 32, 0),
- );
- */
- function create_xls($data,$filename='simple.xls'){
- ini_set('max_execution_time', '0');
- Vendor('PHPExcel.PHPExcel');
- $filename=str_replace('.xls', '', $filename).'.xls';
- $phpexcel = new PHPExcel();
- $phpexcel->getProperties()
- ->setCreator("Maarten Balliauw")
- ->setLastModifiedBy("Maarten Balliauw")
- ->setTitle("Office 2007 XLSX Test Document")
- ->setSubject("Office 2007 XLSX Test Document")
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
- ->setKeywords("office 2007 openxml php")
- ->setCategory("Test result file");
- $phpexcel->getActiveSheet()->fromArray($data);
- $phpexcel->getActiveSheet()->setTitle('Sheet1');
- $phpexcel->setActiveSheetIndex(0);
- header('Content-Type: application/vnd.ms-excel');
- header("Content-Disposition: attachment;filename=$filename");
- header('Cache-Control: max-age=0');
- header('Cache-Control: max-age=1');
- header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
- header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
- header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
- header ('Pragma: public'); // HTTP/1.0
- $objwriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
- $objwriter->save('php://output');
- exit;
- }
- /**
- * 数据转csv格式的excle
- * @param array $data 需要转的数组
- * @param string $header 要生成的excel表头
- * @param string $filename 生成的excel文件名
- * 示例数组:
- $data = array(
- '1,2,3,4,5',
- '6,7,8,9,0',
- '1,3,5,6,7'
- );
- $header='用户名,密码,头像,性别,手机号';
- */
- function create_csv($data,$header=null,$filename='simple.csv'){
- // 如果手动设置表头;则放在第一行
- if (!is_null($header)) {
- array_unshift($data, $header);
- }
- // 防止没有添加文件后缀
- $filename=str_replace('.csv', '', $filename).'.csv';
- ob_clean();
- Header( "Content-type: application/octet-stream ");
- Header( "Accept-Ranges: bytes ");
- Header( "Content-Disposition: attachment; filename=".$filename);
- foreach( $data as $k => $v){
- // 如果是二维数组;转成一维
- if (is_array($v)) {
- $v=implode(',', $v);
- }
- // 替换掉换行
- $v=preg_replace('/\s*/', '', $v);
- // 解决导出的数字会显示成科学计数法的问题
- $v=str_replace(',', "\t,", $v);
- // 转成gbk以兼容office乱码的问题
- echo iconv('UTF-8','GBK',$v)."\t\r\n";
- }
- }
数组转xls格式的excel文件&数据转csv格式的excle的更多相关文章
- c# 用OpenXmL读取.xlsx格式的Excel文件 返回DataTable
1.须要引用的dll : DocumentFormat.OpenXml.dll ---须要安装一下OpenXml再引用 WindowsBase ---直接在项目里加入引用 2.方法: /// & ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- VC6.0读取Excel文件数据
啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过 ...
- springMVC(5)---导入excel文件数据到数据库
springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...
- 【转】java将excel文件转换成txt格式文件
在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...
- selenium实现excel文件数据的读、写
在进行软件测试或设计自动化测试框架时,一个不可避免的过程就是: 参数 化,在利用 python 进行自动化测试开发时,通常会使用 excel 来做数据管 理,利用 xlrd.xlwt 开源包来读写 e ...
- ci框架读取上传的excel文件数据
原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库 ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
- 用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式
假设有Excel文件data.xlsx,其中内容为: ID age height sex weight张三 1 39 181 female 85李四 2 ...
随机推荐
- linux0.11源码内核——系统调用,int80的实现细节
linux0.11添加系统调用的步骤 假设添加一个系统调用foo() 1.修改include/linux/sys.h 添加声明 extern int foo(); 同时在sys_call_table数 ...
- 【HDOJ6606】Distribution of books(二分,BIT)
题意:给定一个长为n的数组,要求挑它前缀的一段,将其分成k段,使得每段和的最大值最小 1<=k<=n<=2e5,abs(a[i])<=1e9 思路: 刚开始写了线段树TLE 改 ...
- [CSP-S模拟测试]:platform(后缀数组+二分+线段树)
题目传送门 题目描述 走过奈何桥有一个名叫望乡台的土台,望乡台有个名曰孟婆的老妇人在卖孟婆汤.一生爱恨情仇,一世浮沉得失,都可以随这碗孟婆汤遗忘得干干净净.现在有$n$碗孟婆汤摆成一排,汤的品种不超过 ...
- GPIO 的 8 种工作模式
GPIO 的 8 种工作模式 在初始化 GPIO 的时候,根据我们的使用要求,必须把 GPIO 设置为相应的模式.如 LED 例程中的 GPIO 引脚如果配置为模拟输入模式是必然会导致错误的. 我们配 ...
- 101、有限状态机的编译c++
Hi Dear 今天是 2017/12/31 跨年之夜,今天白天突然之间兴起,想起来了夏天的时候看的斯坦福cs224d的自然语言处理课程,上面最后讲的语音识别的开源工具Kaldi. 于是便想着来动手试 ...
- selenium2-java 浏览器操作常用命令语法
WebDriver driver = new ChromeDriver(); xpath定位:driver.findElement(By.xpath("//div[@id='register ...
- Python中生成器和yield语句的用法详解
Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...
- 距离矢量路由协议——RIP
距离矢量路由协议RIP: 众所周知,RIP(Routing Information Protocol),即路由信息协议,是一种距离矢量路由协议,它与IGRP,OSPF等一样都是属于IGP(Interi ...
- 嵌入式C语言3.3 关键字---逻辑结构
1. if else if(条件表达式){ ****;} else {xxxxxx;} 2. switch case default 3. do while for 4. con ...
- 3.jmeter jsr232 脚本获取当前测试的正在活动的线程数
jsr232 groovy 脚本获取当前测试的正在活动的线程数 (需要选择 groovy类型, 如果使用beanshell或者javascript,请根据其语法稍作修改即可) import org.a ...