PHP导入导出Excel方法小结说课材料.doc

上传人:1595****071 文档编号:51592432 上传时间:2022-10-18 格式:DOC 页数:25 大小:171KB
返回 下载 相关 举报
PHP导入导出Excel方法小结说课材料.doc_第1页
第1页 / 共25页
PHP导入导出Excel方法小结说课材料.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《PHP导入导出Excel方法小结说课材料.doc》由会员分享,可在线阅读,更多相关《PHP导入导出Excel方法小结说课材料.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。PHP导入导出Excel方法小结-PHP导入导出Excel方法小结PostedbyGgNETon星期五,一月9,2009Leaveacomment(0)Gotocomments最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。优

2、点:简单。缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr=mb_convert_encoding(“gb2312,“UTF-8,$yourStr);下面详细列举几种方法。一、PHP导出Excel1:第一推荐无比风骚的PHPExcel,官方网站:导入导出都成,可以导出office2007格式,同时兼容2003。下载下来的包中有文档和例子,大家可以自行研究。抄

3、段例子出来:getProperties()-setCreator(“MaartenBalliauw”);$objPHPExcel-getProperties()-setLastModifiedBy(“MaartenBalliauw”);$objPHPExcel-getProperties()-setTitle(“Office2007XLSXTestDocument”);$objPHPExcel-getProperties()-setSubject(“Office2007XLSXTestDocument”);$objPHPExcel-getProperties()-setDescrption(“

4、TestdocumentforOffice2007XLSX,generatedusingPHPclasses.”);$objPHPExcel-getProperties()-setKeywords(“office2007openxmlphp”);$objPHPExcel-getProperties()-setCategory(“Testresultfile”);/Addsomedataechodate(H:i:s).”Addsomedatan”;$objPHPExcel-setActiveSheetIndex(0);$objPHPExcel-getActiveSheet()-setCellVa

5、lue(A1,Hello);$objPHPExcel-getActiveSheet()-setCellValue(B2,world!);$objPHPExcel-getActiveSheet()-setCellValue(C1,Hello);$objPHPExcel-getActiveSheet()-setCellValue(D2,world!);/Renamesheetechodate(H:i:s).”Renamesheetn”;$objPHPExcel-getActiveSheet()-setTitle(Simple);/Setactivesheetindextothefirstsheet

6、,soExcelopensthisasthefirstsheet$objPHPExcel-setActiveSheetIndex(0);/SaveExcel2007fileechodate(H:i:s).”WritetoExcel2007formatn”;$objWriter=newPHPExcel_Writer_Excel2007($objPHPExcel);$objWriter-save(str_replace(.php,.xlsx,_FILE_);/Echodoneechodate(H:i:s).”Donewritingfile.rn”;2、使用pear的Spreadsheet_Exce

7、l_Writer类下载地址:此类依赖于OLE,下载地址:需要注意的是导出的Excel文件格式比较老,修改后保存会提示是否转换成更新的格式。不过可以设定格式,很强大。send(test.xls);/Creatingaworksheet$worksheet=&$workbook-addWorksheet(Myfirstworksheet);/Theactualdata$worksheet-write(0,0,Name);$worksheet-write(0,1,Age);$worksheet-write(1,0,JohnSmith);$worksheet-write(1,1,30);$worksh

8、eet-write(2,0,JohannSchmidt);$worksheet-write(2,1,31);$worksheet-write(3,0,JuanHerrera);$worksheet-write(3,1,32);/Letssendthefile$workbook-close();?3:利用smarty,生成符合Excel规范的XML或HTML文件支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。详细内容请见rardge大侠的帖子:需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5

9、ss:ExpandedRowCount=”21”之类的东西删掉。4、利用pack函数打印出模拟Excel格式的断句符号,这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。缺点是无格式。不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。5、使用制表符、换行符的方法制表符”t”用户分割同一行中的列,换行符”tn”可以开启下一行。6、使用com如果你的PHP可以开启com模块,就可以用它来导出Excel文件Application-valuen”;print“Loadedversion:$excel_app-Application-v

10、ersionn”;$Workbook=$excel_app-Workbooks-Open(“$filename”)orDie(“Didnotopen$filename$Workbook”);$Worksheet=$Workbook-Worksheets($sheet1);$Worksheet-activate;$excel_cell=$Worksheet-Range(“C4);$excel_cell-activate;$excel_result=$excel_cell-value;print“$excel_resultn”;$Worksheet=$Workbook-Worksheets($sh

11、eet2);$Worksheet-activate;$excel_cell=$Worksheet-Range(“C4);$excel_cell-activate;$excel_result=$excel_cell-value;print“$excel_resultn”;#Tocloseallinstancesofexcel:$Workbook-Close;unset($Worksheet);unset($Workbook);$excel_app-Workbooks-Close();$excel_app-Quit();unset($excel_app);?一个更好的例子:一、PHP导入Excel

12、1:还是用PHPExcel,官方网站:2:使用PHP-ExcelReader,下载地址:举例:setOutputEncoding(utf8);$data-read(jxlrwtest.xls);error_reporting(E_ALLE_NOTICE);for($i=1;$isheets0numRows;$i+)for($j=1;$jsheets0numCols;$j+)echo“”.$data-sheets0cells$i$j.”,”;echo“n”;?方法一方法二?php/definedatabaseparameter$dbHost=localhost;$dbUsername=webus

13、er;$dbPassword=123456;$dbDbName=pa_bbs;$dbTablename=pw_actions;/connectdatabase$Connect=mysql_connect($dbHost,$dbUsername,$dbPassword)ordie(Couldntconnect.);$Db=mysql_select_db($dbDbName,$Connect)ordie(Couldntselectdatabase.);/setheaderinfomation$file_type=vnd.ms-excel;$file_ending=xls;header(Conten

14、t-Type:application/$file_type);header(Content-Disposition:attachment;filename=$dbTablename.$file_ending);header(Pragma:no-cache);header(Expires:0);/exportdatatoexceldate_default_timezone_set(Asia/Shanghai);$now_date=date(Y-m-dH:i:s);$title=数据库名:$dbDbName,数据表:$dbTablename,备份日期:$now_date;echo($titlen)

15、;$sql=setnamesgbk;mysql_query($sql,$Connect);$sql=select*from.$dbTablename.;$ALT_Db=mysql_select_db($dbDbName,$Connect)ordie(Couldntselectdatabase);$result=mysql_query($sql,$Connect)ordie(mysql_error();$sep=t;for($i=0;$imysql_num_fields($result);$i+)echomysql_field_name($result,$i).t;print(n);$i=0;w

16、hile($row=mysql_fetch_row($result)$schema_insert=;for($j=0;$j问题总结注:mysql数据库为utf-8一、网上流行的一些函数functionexport($data)$data=iconv(utf-8,gb2312,$data);$filename=data.date(YmdHis).xls;header(Content-Type:application/vnd.ms-excel);Header(Accept-Ranges:bytes);Header(Content-type:charset=utf-8);header(Content

17、-Disposition:attachment;filename=.$filename);header(Pragma:no-cache);header(Expires:0);/$data这个变量如果是数组的话在函数里应该对数组进行分解,在excel里的分列用t,分行用n,iconv转码会出错,原因:1、无论编码是utf-8还是gb2312,因为我的$data数据是从编码为utf-8的mysql的数据库里查出,经过自己测试发现无论charset=两者中的任何一个,$data必须经过iconv转码为相应的格式才可以正常显示汉字;2、经本人测试,iconv遇到一些字符会出错;二、用$table=这种

18、格式,函数为:functionexport($data)$filename=data.date(YmdHis).xls;header(Content-Type:application/vnd.ms-excel);Header(Accept-Ranges:bytes);Header(Content-type:charset=utf-8);header(Content-Disposition:attachment;filename=.$filename);header(Pragma:no-cache);header(Expires:0);即去掉:$data=iconv(utf-8,gb2312,$data);但是必须要加上,这行内容可以保证如果从mysql数据库查询数据为空的情况下,其它的汉字也可以正常显示用的好处:1、写法与html相似,可以在程序里加入一些样式,导出的excel比较好看;2、省去了汉字编码经常出错的麻烦3、由于不需要用iconv这个函数,可以导出正确的汉字数据:)本文来自CSDN博客,转载请标明出处:-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁