excelphp导入excel文件php程序

您现在的位置:&>&&>&&>&
育龙网&WWW.CHINA-B.C0M&& 日&&来源:互联网
核心提示:
原冰山上的播客看到这篇文章的时候,很是惊讶原的耐心,虽然我们在平时用的也有一些,但没有列出来的全,写excel的时候,我用过pear的
原冰山上的播客看到这篇文章的时候,很是惊讶原的耐心,虽然我们在平时用的也有一些,但没有列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了。呵呵。(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了。因为采用的是拿来主义,记不住。原文内容:最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。优点:简单。缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr = mb_convert_下面详细列举几种方法。一、PHP导出Excel1:第一推荐无比风骚的PHPExcel,官方网站:导入导出都成,可以导出office2007格式,同时兼容2003。下载下来的包中有文档和例子,大家可以自行研究。抄段例子出来:PHP代码?php/*** PHPExcel* Copyright PHPExcel* This libr you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software F either* version 2.1 of the License, orany later version.* This library is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU* Lesser General Public License for more details.* You should have received a copy of the GNU Lesser General Public* License alo if not, write to the Free Software* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
USA* @category PHPExcel* @package PHPExcel* @copyright Copyright PHPExcel* @license
LGPL* @version 1.5.0, *//** Error reporting */error_/** Include path **/set_include_path . PATH_SEPARATOR . ‘../Classes/’);/** PHPExcel */include ‘PHPExcel.php’;/** PHPExcel_Writer_Excel2007 */include ‘PHPExcel/Writer/Excel2007.php’;// Create new PHPExcel objectecho date . ” Create new PHPExcel object“n”;$objPHPExcel = new PHPE// Set propertiesecho date . ” Set properties“n”;$objPHPExcel-getProperties-setC$objPHPExcel-getProperties-setLastModifiedBy;$objPHPExcel-getProperties-setT$objPHPExcel-getProperties-setS$objPHPExcel-getProperties-setDescrī$objPHPExcel-getProperties-setK$objPHPExcel-getProperties-setC// Add some dataecho date . ” Add some data“n”;$objPHPExcel-setActiveSheetI$objPHPExcel-getActiveSheet-setCellV$objPHPExcel-getActiveSheet-setCellV$objPHPExcel-getActiveSheet-setCellV$objPHPExcel-getActiveSheet-setCellV// Rename sheetecho date . ” Rename sheet“n”;$objPHPExcel-getActiveSheet-setT// Set active sheet index to the first sheet, so Excel opens this as the first sheet$objPHPExcel-setActiveSheetI// Save Excel 2007 fileecho date . ” Write to Excel2007 format“n”;$objWriter = new PHPExcel_Writer_Excel2007;$objWriter-save);// Echo doneecho date . ” Done writing file.“r“n”;2、使用pear的Spreadsheet_Excel_Writer类此类依赖于OLE,需要注意的是导出的Excel文件格式比较老,修改后保存会提示是否转换成更新的格式。不过可以设定格式,很强大。PHP代码?phprequire_once ‘Spreadsheet/Excel/Writer.php’;// Creating a workbook$workbook = new Spreadsheet_Excel_W// sending HTTP headers$workbook-// Creating a worksheet$worksheet =& $workbook-addW// The actual data$worksheet-$worksheet-$worksheet-$worksheet-$worksheet-$worksheet-$worksheet-$worksheet-// Let’s send the file$workbook-3:利用smarty,生成符合Excel规范的XML或HTML文件支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。详细内容请见rardge大侠的文章:需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5″ ss:ExpandedRowCount=”21″”之类的东西删掉。4、利用pack函数打印出模拟Excel格式的断句符号,这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。缺点是无格式。PHP代码?php// Send Header;// XLS Data CellxlsBOF;xlsWriteLxlsWriteLxlsWriteLxlsEOF;function xlsBOFfunction xlsEOFfunction xlsWriteNumberfunction xlsWriteLabel不过在64位linux系统中使用时失败了,断句符号全部变成了乱码。5、使用制表符、换行符的方法制表符”“t”用户分割同一行中的列,换行符”“t“n”可以开启下一行。?php/*first line*/echo “hello”.”“t”;echo “world”.”“t”;echo ““t“n”;/*start of second line*/echo “this is second line”.”“t”;echo “Hi,pretty girl”.”“t”;echo ““t“n”;6、使用com如果你的PHP可以开启com模块,就可以用它来导出Excel文件PHP代码?PHP$filename = “c:/spreadhseet/test.xls”;$sheet1 = 1;$sheet2 = “sheet2″;$excel_app = new COM or Dprint “Application name: “n” ;print “Loaded version: “n”;$Workbook = $excel_app-Workbooks-Open or D$Worksheet = $Workbook-W$Worksheet-$excel_cell = $Worksheet-R$excel_cell-$excel_result = $excel_cell-print “$excel_result“n”;$Worksheet = $Workbook-W$Worksheet-$excel_cell = $Worksheet-R$excel_cell-$excel_result = $excel_cell-print “$excel_result“n”;#To close all instances of excel:$Workbook-C$excel_app-Workbooks-C$excel_app-Q一个更好的例子:一、PHP导入Excel1:还是用PHPExcel,官方网站: 。2:使用PHP-ExcelReader,下载地址:举例:PHP代码?phprequire_once ‘Excel/reader.php’;// ExcelF$data = new Spreadsheet_Excel_R// Set output Encoding.$data-setOutputE$data-error_forecho ““n”;?本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站任何非商业应用的转载, 但须注明出自"膘叔简单人生", 保留原始链接, 此外还必须标注原文标题和链接.
相关热词搜索:
DreamWeaver
DreamWeaver
-- 本站部分信息来源于互联网,不代表本站观点或立场,如有侵权,请来电告知,我们将及时处理页面导航:
→ 正文内容 ThinkPHP基于PHPExcel导入Excel文件
ThinkPHP基于PHPExcel导入Excel文件的方法
这篇文章主要介绍了ThinkPHP基于PHPExcel导入Excel文件的方法,对于Excel文件的上传、读取操作以及写入数据库等都做了较为详尽的讲述,在进行项目开发的过程中非常具有实用价值,需要的朋友可以参考下
本文实例讲述了ThinkPHP基于PHPExcel导入Excel文件的方法。分享给大家供大家参考。具体方法如下:
主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据。
下载地址:/
1.先把Excel文件上传到服务器
2.获取服务器Excel文件内容
3.写入数据库
一、上传Excel文件,使用PHP里自带的上传方法 “\Think\Upload();”,可以很方便的实现。为此我整理下使用这个方法的最简单方式
代码如下:/**
&* TODO 上传文件方法
&* @param $fileid form表单file的name值
&* @param $dir 上传到uploads目录的$dir文件夹里
&* @param int $maxsize 最大上传限制,默认1024000 byte
&* @param array $exts 允许上传文件类型 默认array('gif','jpg','jpeg','bmp','png')
&* @return array 返回array,失败status=0 成功status=1,filepath=newspost//a.jpg
function uploadfile($fileid,$dir,$maxsize=5242880,$exts=array('gif','jpg','jpeg','bmp','png'),$maxwidth=430){
&&& $upload = new \Think\Upload();// 实例化上传类
&&& $upload-&maxSize&& =&&&& $// 设置附件上传大小,单位字节(微信图片限制1M
&&& $upload-&exts&&&&& =&&&& $// 设置附件上传类型
&&& $upload-&rootPath& =&&&& './uploads/'; // 设置附件上传根目录
&&& $upload-&savePath& =&&&& $dir.'/'; // 设置附件上传(子)目录
&&& // 上传文件
&&& $info&& =&& $upload-&upload();
&&& if(!$info) {// 上传错误提示错误信息
&&&&&&& return array(status=&0,msg=&$upload-&getError());
&&& }else{// 上传成功
&&&&&&& return array(status=&1,msg=&'上传成功',filepath=&$info[$fileid]['savepath'].$info[$fileid]['savename']);
这里默认上传到ThinkPHP入口文件index.php所在的文件夹uploads,此方法返回一个数据,状态status=1时为成功,也建议大家在写功能模块时或做封装时,整个系统的在架构初期应该有约定,在必要的情况下返回值用数组形式,成功返回
代码如下:return array(status=&1,data=&....,info=&.....)
失败时可以返回
代码如下:array(status-&0,info=&'可以说明出错的原因',....)
这样用统一的方式有利于规范开发,团队协作时看代码时可以提高效率,减少思维运转,说远了,上传的方法调用方式如下:
代码如下://excel 文件
if(!empty($_FILES['xls']['name'])){
&&& $upload=uploadfile('xls','tempxls',5242880,array('xls','xlsx'));
&&& if($upload['status']){
&$path=$upload['filepath'];
&&& }else{
&$this-&error($upload['msg']);
二、获取Excel数据
1.首先需要引入PHPExcel的类库
代码如下:require_once 'module/PHPExcel/Classes/PHPExcel/IOFactory.php';
2.获取Excel第0张表即(Sheet1)
代码如下://获取excel文件
$objPHPExcel = \PHPExcel_IOFactory::load("uploads/$path");
$objPHPExcel-&setActiveSheetIndex(0);
$sheet0=$objPHPExcel-&getSheet(0);
3.获取行数,并把数据读取出来$data数组
代码如下:$rowCount=$sheet0-&getHighestRow();//excel行数
$data=array();
for ($i = 2; $i &= $rowC $i++){
&&& $item['name']=$this-&getExcelValue($sheet0,'A'.$i);
&&& $item['sex']=$this-&getExcelValue($sheet0,'B'.$i);
&&& $item['contact']=$this-&getExcelValue($sheet0,'C'.$i);
&&& $item['remark']=$this-&getExcelValue($sheet0,'D'.$i);
&&& $item['addtime']=$this-&getExcelValue($sheet0,'E'.$i);
&&& $data[]=$
三、最后保存到数据库
代码如下:$success=0;
$sum=count($data);
foreach($data as $k=&$v){
&&& if(M('temp_area3')-&data($v)-&add()){
&$success++;
&&& }else {
&$error++;
echo "总{$sum}条,成功{$success}条,失败{$error}条。";
至此大功告成!希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910怎么样用PHP程序实现EXCEL文件批量导入??
[问题点数:100分]
怎么样用PHP程序实现EXCEL文件批量导入??
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2007年10月 PHP大版内专家分月排行榜第一2007年12月 其他数据库开发大版内专家分月排行榜第一2007年10月 其他数据库开发大版内专家分月排行榜第一2007年9月 其他数据库开发大版内专家分月排行榜第一
2014年6月 其他数据库开发大版内专家分月排行榜第二2008年11月 其他数据库开发大版内专家分月排行榜第二2006年12月 PHP大版内专家分月排行榜第二2007年9月 PHP大版内专家分月排行榜第二2007年6月 PHP大版内专家分月排行榜第二2008年2月 其他数据库开发大版内专家分月排行榜第二2008年1月 其他数据库开发大版内专家分月排行榜第二2007年11月 其他数据库开发大版内专家分月排行榜第二
2012年3月 PHP大版内专家分月排行榜第三
2008年10月 PHP大版内专家分月排行榜第二2008年9月 PHP大版内专家分月排行榜第二2008年4月 PHP大版内专家分月排行榜第二2007年12月 PHP大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 php导入导出excel 的文章

 

随机推荐