0

0

php导出和导入Excel文件

php中文网

php中文网

发布时间:2016-07-25 09:09:32

|

1082人浏览过

|

来源于php中文网

原创

PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐。列举以记之。
  1. //设置PHPExcel类库的include path
  2. set_include_path('.'. PATH_SEPARATOR .
  3. 'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .
  4. get_include_path());
  5. /**
  6. * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要
  7. * 打开对应行的注释。
  8. * 如果使用 Excel5 ,输出的内容应该是GBK编码。
  9. */
  10. require_once 'PHPExcel.php';
  11. // uncomment
  12. ////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls
  13. // or
  14. ////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
  15. // 创建一个处理对象实例
  16. $objExcel = new PHPExcel();
  17. // 创建文件格式写入对象实例, uncomment
  18. ////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式
  19. // or
  20. ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
  21. //$objWriter->setOffice2003Compatibility(true);
  22. //*************************************
  23. //设置文档基本属性
  24. $objProps = $objExcel->getProperties();
  25. $objProps->setCreator("Zeal Li");
  26. $objProps->setLastModifiedBy("Zeal Li");
  27. $objProps->setTitle("Office XLS Test Document");
  28. $objProps->setSubject("Office XLS Test Document, Demo");
  29. $objProps->setDescription("Test document, generated by PHPExcel.");
  30. $objProps->setKeywords("office excel PHPExcel");
  31. $objProps->setCategory("Test");
  32. //*************************************
  33. //设置当前的sheet索引,用于后续的内容操作。
  34. //一般只有在使用多个sheet的时候才需要显示调用。
  35. //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
  36. $objExcel->setActiveSheetIndex(0);
  37. $objActSheet = $objExcel->getActiveSheet();
  38. //设置当前活动sheet的名称
  39. $objActSheet->setTitle('测试Sheet');
  40. //*************************************
  41. //设置单元格内容
  42. //
  43. //由PHPExcel根据传入内容自动判断单元格内容类型
  44. $objActSheet->setCellValue('A1', '字符串内容'); // 字符串内容
  45. $objActSheet->setCellValue('A2', 26); // 数值
  46. $objActSheet->setCellValue('A3', true); // 布尔值
  47. $objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
  48. //显式指定内容类型
  49. $objActSheet->setCellValueExplicit('A5', '847475847857487584',
  50. PHPExcel_Cell_DataType::TYPE_STRING);
  51. //合并单元格
  52. $objActSheet->mergeCells('B1:C22');
  53. //分离单元格
  54. $objActSheet->unmergeCells('B1:C22');
  55. //*************************************
  56. //设置单元格样式
  57. //
  58. //设置宽度
  59. $objActSheet->getColumnDimension('B')->setAutoSize(true);
  60. $objActSheet->getColumnDimension('A')->setWidth(30);
  61. $objStyleA5 = $objActSheet->getStyle('A5');
  62. //设置单元格内容的数字格式。
  63. //
  64. //如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,
  65. //这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的
  66. //各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode
  67. //为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要
  68. //修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,
  69. //在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
  70. //行代码:
  71. //if($ifmt === '0') $ifmt = 1;
  72. //
  73. //设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字
  74. //被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容
  75. //都按原始内容全部显示出来。
  76. $objStyleA5
  77. ->getNumberFormat()
  78. ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
  79. //设置字体
  80. $objFontA5 = $objStyleA5->getFont();
  81. $objFontA5->setName('Courier New');
  82. $objFontA5->setSize(10);
  83. $objFontA5->setBold(true);
  84. $objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
  85. $objFontA5->getColor()->setARGB('FF999999');
  86. //设置对齐方式
  87. $objAlignA5 = $objStyleA5->getAlignment();
  88. $objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  89. $objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  90. //设置边框
  91. $objBorderA5 = $objStyleA5->getBorders();
  92. $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  93. $objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
  94. $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  95. $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  96. $objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  97. //设置填充颜色
  98. $objFillA5 = $objStyleA5->getFill();
  99. $objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  100. $objFillA5->getStartColor()->setARGB('FFEEEEEE');
  101. //从指定的单元格复制样式信息.
  102. $objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
  103. //*************************************
  104. //添加图片
  105. $objDrawing = new PHPExcel_Worksheet_Drawing();
  106. $objDrawing->setName('ZealImg');
  107. $objDrawing->setDescription('Image inserted by Zeal');
  108. $objDrawing->setPath('./zeali.net.logo.gif');
  109. $objDrawing->setHeight(36);
  110. $objDrawing->setCoordinates('C23');
  111. $objDrawing->setOffsetX(10);
  112. $objDrawing->setRotation(15);
  113. $objDrawing->getShadow()->setVisible(true);
  114. $objDrawing->getShadow()->setDirection(36);
  115. $objDrawing->setWorksheet($objActSheet);
  116. //添加一个新的worksheet
  117. $objExcel->createSheet();
  118. $objExcel->getSheet(1)->setTitle('测试2');
  119. //保护单元格
  120. $objExcel->getSheet(1)->getProtection()->setSheet(true);
  121. $objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');
  122. //*************************************
  123. //输出内容
  124. //
  125. $outputFileName = "output.xls";
  126. //到文件
  127. ////$objWriter->save($outputFileName);
  128. //or
  129. //到浏览器
  130. ////header("Content-Type: application/force-download");
  131. ////header("Content-Type: application/octet-stream");
  132. ////header("Content-Type: application/download");
  133. ////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
  134. ////header("Content-Transfer-Encoding: binary");
  135. ////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  136. ////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  137. ////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  138. ////header("Pragma: no-cache");
  139. ////$objWriter->save('php://output');
  140. ?>
复制代码


相关文章

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

34

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

14

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

34

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

18

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

12

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

44

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
独孤九贱(6)_jQuery视频教程
独孤九贱(6)_jQuery视频教程

共44课时 | 34.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号