1. /**
  2. * 数组转xls格式的excel文件
  3. * @param array $data 需要生成excel文件的数组
  4. * @param string $filename 生成的excel文件名
  5. * 示例数据:
  6. $data = array(
  7. array(NULL, 2010, 2011, 2012),
  8. array('Q1', 12, 15, 21),
  9. array('Q2', 56, 73, 86),
  10. array('Q3', 52, 61, 69),
  11. array('Q4', 30, 32, 0),
  12. );
  13. */
  14. function create_xls($data,$filename='simple.xls'){
  15. ini_set('max_execution_time', '0');
  16. Vendor('PHPExcel.PHPExcel');
  17. $filename=str_replace('.xls', '', $filename).'.xls';
  18. $phpexcel = new PHPExcel();
  19. $phpexcel->getProperties()
  20. ->setCreator("Maarten Balliauw")
  21. ->setLastModifiedBy("Maarten Balliauw")
  22. ->setTitle("Office 2007 XLSX Test Document")
  23. ->setSubject("Office 2007 XLSX Test Document")
  24. ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
  25. ->setKeywords("office 2007 openxml php")
  26. ->setCategory("Test result file");
  27. $phpexcel->getActiveSheet()->fromArray($data);
  28. $phpexcel->getActiveSheet()->setTitle('Sheet1');
  29. $phpexcel->setActiveSheetIndex(0);
  30. header('Content-Type: application/vnd.ms-excel');
  31. header("Content-Disposition: attachment;filename=$filename");
  32. header('Cache-Control: max-age=0');
  33. header('Cache-Control: max-age=1');
  34. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  35. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  36. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  37. header ('Pragma: public'); // HTTP/1.0
  38. $objwriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
  39. $objwriter->save('php://output');
  40. exit;
  41. }
  42.  
  43. /**
  44. * 数据转csv格式的excle
  45. * @param array $data 需要转的数组
  46. * @param string $header 要生成的excel表头
  47. * @param string $filename 生成的excel文件名
  48. * 示例数组:
  49. $data = array(
  50. '1,2,3,4,5',
  51. '6,7,8,9,0',
  52. '1,3,5,6,7'
  53. );
  54. $header='用户名,密码,头像,性别,手机号';
  55. */
  56. function create_csv($data,$header=null,$filename='simple.csv'){
  57. // 如果手动设置表头;则放在第一行
  58. if (!is_null($header)) {
  59. array_unshift($data, $header);
  60. }
  61. // 防止没有添加文件后缀
  62. $filename=str_replace('.csv', '', $filename).'.csv';
  63. ob_clean();
  64. Header( "Content-type: application/octet-stream ");
  65. Header( "Accept-Ranges: bytes ");
  66. Header( "Content-Disposition: attachment; filename=".$filename);
  67. foreach( $data as $k => $v){
  68. // 如果是二维数组;转成一维
  69. if (is_array($v)) {
  70. $v=implode(',', $v);
  71. }
  72. // 替换掉换行
  73. $v=preg_replace('/\s*/', '', $v);
  74. // 解决导出的数字会显示成科学计数法的问题
  75. $v=str_replace(',', "\t,", $v);
  76. // 转成gbk以兼容office乱码的问题
  77. echo iconv('UTF-8','GBK',$v)."\t\r\n";
  78. }
  79. }

数组转xls格式的excel文件&数据转csv格式的excle的更多相关文章

  1. c# 用OpenXmL读取.xlsx格式的Excel文件 返回DataTable

    1.须要引用的dll :  DocumentFormat.OpenXml.dll  ---须要安装一下OpenXml再引用 WindowsBase  ---直接在项目里加入引用 2.方法: /// & ...

  2. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  3. VC6.0读取Excel文件数据

    啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过 ...

  4. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  5. 【转】java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

  6. selenium实现excel文件数据的读、写

    在进行软件测试或设计自动化测试框架时,一个不可避免的过程就是: 参数 化,在利用 python 进行自动化测试开发时,通常会使用 excel 来做数据管 理,利用 xlrd.xlwt 开源包来读写 e ...

  7. ci框架读取上传的excel文件数据

    原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库 ...

  8. 上传读取Excel文件数据

    /// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...

  9. 用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式

    假设有Excel文件data.xlsx,其中内容为: ID  age  height     sex  weight张三   1   39     181  female      85李四   2  ...

随机推荐

  1. linux0.11源码内核——系统调用,int80的实现细节

    linux0.11添加系统调用的步骤 假设添加一个系统调用foo() 1.修改include/linux/sys.h 添加声明 extern int foo(); 同时在sys_call_table数 ...

  2. 【HDOJ6606】Distribution of books(二分,BIT)

    题意:给定一个长为n的数组,要求挑它前缀的一段,将其分成k段,使得每段和的最大值最小 1<=k<=n<=2e5,abs(a[i])<=1e9 思路: 刚开始写了线段树TLE 改 ...

  3. [CSP-S模拟测试]:platform(后缀数组+二分+线段树)

    题目传送门 题目描述 走过奈何桥有一个名叫望乡台的土台,望乡台有个名曰孟婆的老妇人在卖孟婆汤.一生爱恨情仇,一世浮沉得失,都可以随这碗孟婆汤遗忘得干干净净.现在有$n$碗孟婆汤摆成一排,汤的品种不超过 ...

  4. GPIO 的 8 种工作模式

    GPIO 的 8 种工作模式 在初始化 GPIO 的时候,根据我们的使用要求,必须把 GPIO 设置为相应的模式.如 LED 例程中的 GPIO 引脚如果配置为模拟输入模式是必然会导致错误的. 我们配 ...

  5. 101、有限状态机的编译c++

    Hi Dear 今天是 2017/12/31 跨年之夜,今天白天突然之间兴起,想起来了夏天的时候看的斯坦福cs224d的自然语言处理课程,上面最后讲的语音识别的开源工具Kaldi. 于是便想着来动手试 ...

  6. selenium2-java 浏览器操作常用命令语法

    WebDriver driver = new ChromeDriver(); xpath定位:driver.findElement(By.xpath("//div[@id='register ...

  7. Python中生成器和yield语句的用法详解

    Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...

  8. 距离矢量路由协议——RIP

    距离矢量路由协议RIP: 众所周知,RIP(Routing Information Protocol),即路由信息协议,是一种距离矢量路由协议,它与IGRP,OSPF等一样都是属于IGP(Interi ...

  9. 嵌入式C语言3.3 关键字---逻辑结构

    1. if  else if(条件表达式){ ****;} else {xxxxxx;} 2. switch    case    default 3. do   while   for 4. con ...

  10. 3.jmeter jsr232 脚本获取当前测试的正在活动的线程数

    jsr232 groovy 脚本获取当前测试的正在活动的线程数 (需要选择 groovy类型, 如果使用beanshell或者javascript,请根据其语法稍作修改即可) import org.a ...