




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。优点:简单。缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr = mb_convert_encoding(gb2312, UTF-8, $yourStr);一、PHP导入Excel1:还是用PHPExcel,官方网站: /PHPExcel。2:使用PHP-ExcelReader,下载地址: /projects/phpexcelreader举例:setOutputEncoding(utf8);$data-read( jxlrwtest.xls);error_reporting(E_ALL E_NOTICE);for ($i = 1; $i sheets0numRows; $i+) for ($j = 1; $j sheets0numCols; $j+) echo .$data-sheets0cells$i$j.,;echo n;?总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册方法一:特点,简单,省心,制表符t用户分割同一行中的列,换行符tn可以开启下一行,还能够自动识别日期格式,货币格式等!动态版table(member). ;$classres = $db-Execute($sql);header(Content-type:application/vnd.ms-excel); header(Content-Disposition:attachment; filename=test_data.xls);echo ID.chr(9);echo txtPEOClientCode.chr(9);echo jcompany.chr(9);echo fcompany.chr(9);echo ecompany.chr(9);echo rcompany.chr(9);echo txtAddress.chr(9);echo txtCompanyTel.chr(9);echo txtFax.chr(9);echo txtPostCode.chr(9);echo chr(13);while ($classrow = $classres-FetchRow()/输出到xlsecho $classrowid.chr(9);echo $classrowtxtPEOClientCode.chr(9);echo $classrowjcompany.chr(9);echo $classrowfcompany.chr(9);echo $classrowecompany.chr(9);echo $classrowrcompany.chr(9);echo $classrowtxtAddress.chr(9);echo $classrowtxtCompanyTel.chr(9);echo $classrowtxtFax.chr(9);echo $classrowtxtPostCode.chr(9);echo chr(13);现在用的Php-excel(/p/php-excel/downloads/list),代码也很简单:require (dirname (_FILE_) . ./class-excel-xml.inc.php);$sql = SELECT * FROM .$ecs-table(member). ;$classres = $db-Execute($sql);while($classrow = $classres-FetchRow()$doc = array ($classrowtxtPEOClientCode, $classrowjcompany, $classrowtxtBillTo);$xls = new Excel_XML;$xls-addArray($doc);$xls-generateXML(mytest);我用的utf-8,结果有乱码问题,把class-excel-xml.inc.php utf8_encode($v) 替换成$v就没有乱码问题了。1:第一推荐无比风骚的PHPExcel,官方网站: /PHPExcel导入导出都成,可以导出office2007格式,同时兼容2003。下载下来的包中有文档和例子,大家可以自行研究。抄段例子出来:/PHPExcelsave(xxx.xls);?-setOffice2003Compatibility(true); /设置文档基本属性 $objProps = $objExcel-getProperties(); $objProps-setCreator(Zeal Li); $objProps-setLastModifiedBy(Zeal Li); $objProps-setTitle(Office XLS Test Document); $objProps-setSubject(Office XLS Test Document, Demo); $objProps-setDescription(Test document, generated by PHPExcel.); $objProps-setKeywords(office excel PHPExcel); $objProps-setCategory(Test); /设置当前的sheet索引,用于后续的内容操作。 /一般只有在使用多个sheet的时候才需要显示调用。 /缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 $objExcel-setActiveSheetIndex(0); $objActSheet = $objExcel-getActiveSheet(); /设置当前活动sheet的名称 $objActSheet-setTitle(测试Sheet); /设置单元格内容 /由PHPExcel根据传入内容自动判断单元格内容类型 $objActSheet-setCellValue(A1, 字符串内容); / 字符串内容 $objActSheet-setCellValue(A2, 26); / 数值 $objActSheet-setCellValue(A3, true); / 布尔值 $objActSheet-setCellValue(A4, =SUM(A2:A2); / 公式 /显式指定内容类型 $objActSheet-setCellValueExplicit(A5, 847475847857487584, PHPExcel_Cell_DataType:TYPE_STRING); /合并单元格 $objActSheet-mergeCells(B1:C22); /分离单元格 $objActSheet-unmergeCells(B1:C22); /设置单元格样式 /设置宽度 $objActSheet-getColumnDimension(B)-setAutoSize(true); $objActSheet-getColumnDimension(A)-setWidth(30); $objStyleA5 = $objActSheet-getStyle(A5); /设置单元格内容的数字格式。 /如果使用了 PHPExcel_Writer_Excel5 来生成内容的话, /这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的 /各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode /为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为0。需要 /修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法, /在 if ($this-_BIFF_version = 0x0500) (第363行附近)前面增加一 /行代码: /if($ifmt = 0) $ifmt = 1; /设置格式为PHPExcel_Style_NumberFormat:FORMAT_NUMBER,避免某些大数字 /被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容 /都按原始内容全部显示出来。 $objStyleA5 -getNumberFormat()-setFormatCode(PHPExcel_Style_NumberFormat:FORMAT_NUMBER); /设置字体 $objFontA5 = $objStyleA5-getFont(); $objFontA5-setName(Courier New); $objFontA5-setSize(10); $objFontA5-setBold(true); $objFontA5-setUnderline(PHPExcel_Style_Font:UNDERLINE_SINGLE); $objFontA5-getColor()-setARGB(FF999999); /设置对齐方式 $objAlignA5 = $objStyleA5-getAlignment(); $objAlignA5-setHorizontal(PHPExcel_Style_Alignment:HORIZONTAL_RIGHT); $objAlignA5-setVertical(PHPExcel_Style_Alignment:VERTICAL_CENTER); /设置边框 $objBorderA5 = $objStyleA5-getBorders(); $objBorderA5-getTop()-setBorderStyle(PHPExcel_Style_Border:BORDER_THIN); $objBorderA5-getTop()-getColor()-setARGB(FFFF0000); / color $objBorderA5-getBottom()-setBorderStyle(PHPExcel_Style_Border:BORDER_THIN); $objBorderA5-getLeft()-setBorderStyle(PHPExcel_Style_Border:BORDER_THIN); $objBorderA5-getRight()-setBorderStyle(PHPExcel_Style_Border:BORDER_THIN); /设置填充颜色 $objFillA5 = $objStyleA5-getFill(); $objFillA5-setFillType(PHPExcel_Style_Fill:FILL_SOLID); $objFillA5-getStartColor()-setARGB(FFEEEEEE); /从指定的单元格复制样式信息. $objActSheet-duplicateStyle($objStyleA5, B1:C22); /添加图片 $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing-setName(ZealImg); $objDrawing-setDescription(Image inserted by Zeal); $objDrawing-setPath(./.logo.gif); $objDrawing-setHeight(36); $objDrawing-setCoordinates(C23); $objDrawing-setOffsetX(10); $objDrawing-setRotation(15); $objDrawing-getShadow()-setVisible(true); $objDrawing-getShadow()-setDirection(36); $objDrawing-setWorksheet($objActSheet); /添加一个新的worksheet $objExcel-createSheet(); $objExcel-getSheet(1)-setTitle(测试2); /保护单元格 $objExcel-getSheet(1)-getProtection()-setSheet(true); $objExcel-getSheet(1)-protectCells(A1:C22, PHPExcel); /输出内容 $outputFileName = output.xls; /到文件 /$objWriter-save($outputFileName); /or /到浏览器 header(Content-Type: application/force-download); header(Content-Type: application/octet-stream); header(Content-Type: application/download); header(Content-Disposition:inline;filename=.$outputFileName.); header(Content-Transfer-Encoding: binary); header(Last-Modified: . gmdate(D, d M Y H:i:s) . GMT); header(Cache-Control: must-revalidate, post-check=0, pre-check=0); header(Pragma: no-cache); $objWriter-save(php:/output); ?40000) $filename_type=csv; else $filename_type=xls; header(Content-Type: application/vnd.ms-excel); Header(Accept-Ranges:bytes); Header(Content-Disposition:attachment;filename=. $filename.$filename_type); /$filename导出的文件名 header(Pragma: no-cache); header(Expires: 0); if($filename_type=xls) echo ; 后面就是以的格式输出数据 ,了大半天终于查到了一点有用的资料,现在摘抄如下: 首先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沃尔玛存货管理制度
- 员工出外出管理制度
- 机组停备用管理制度
- 员工加班餐管理制度
- 成品库仓储管理制度
- 商超办公室管理制度
- 第1课《沁园春雪》课件统编版语文九年级上册
- 会计学原理与案例(第二版)-
- 民事诉讼法(第四版)第十六章 第二审程序
- 《电机控制》课件-三相异步电动机的启动、反转试验
- 7数沪科版期末考试卷-2024-2025学年七年级(初一)数学下册期末考试模拟卷02
- 德阳研学旅行课程的融合开发与实践发展策略研究
- 病理学考试题库
- 2025年全国普通高校招生全国统一考试数学试卷(新高考Ⅰ卷)含答案
- T/CSPSTC 75-2021微动探测技术规程
- 【KAWO科握】2025年中国社交媒体平台指南报告
- 【语文】第23课《“蛟龙”探海》课件 2024-2025学年统编版语文七年级下册
- 大部分分校:地域文化形考任务一-国开(CQ)-国开期末复习资料
- 2024年江苏省南通市中考地理试题(含答案)
- 2024年上海市中考数学真题试卷及答案解析
- 哈尔滨市道路交通安全管理办法
评论
0/150
提交评论