php下载excel表格.docx

上传人:b****2 文档编号:24396657 上传时间:2023-05-27 格式:DOCX 页数:11 大小:19.99KB
下载 相关 举报
php下载excel表格.docx_第1页
第1页 / 共11页
php下载excel表格.docx_第2页
第2页 / 共11页
php下载excel表格.docx_第3页
第3页 / 共11页
php下载excel表格.docx_第4页
第4页 / 共11页
php下载excel表格.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

php下载excel表格.docx

《php下载excel表格.docx》由会员分享,可在线阅读,更多相关《php下载excel表格.docx(11页珍藏版)》请在冰豆网上搜索。

php下载excel表格.docx

php下载excel表格

竭诚为您提供优质文档/双击可除

php下载excel表格

  篇一:

php生成excel文件如此简单

  最近因项目需要,需要开发一个模块,把系统中的一些数据导出成excel,修改后再导回系统。

就趁机对这个研究了一番,下面进行一些总结。

  基本上导出的文件分为两种:

  1:

类excel格式,这个其实不是传统意义上的excel文件,只是因为excel的兼容能力强,能够正确打开而已。

修改这种文件后再保存,通常会提示你是否要转换成excel文件。

优点:

简单。

  缺点:

难以生成格式,如果用来导入需要自己分别编写相应的程序。

  2:

excel格式,与类excel相对应,这种方法生成的文件更接近于真正的excel格式。

  如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourstr从utf-8转换成了gb2312:

  $yourstr=mb_convert_encoding(”gb2312″,“utF-8″,$yourstr);

  下面详细列举几种方法。

  一、php导出excel

  1:

第一推荐无比风骚的phpexcel,官方网站:

/phpexcel导入导出都成,可以导出office20xx格式,同时兼容20xx。

  下载下来的包中有文档和例子,大家可以自行研究。

  抄段例子出来:

  php代码

    /**

  *phpexcel

  *

  *copyright(c)20xx-20xxphpexcel

  *

  *thislibraryisfreesoftware;youcanredistributeitand/or

  *modifyitunderthetermsofthegnulessergeneralpublic

  *licenseaspublishedbytheFreesoftwareFoundation;either

  *version2.1ofthelicense,or(atyouroption)anylaterversion.

  *

  *thislibraryisdistributedinthehopethatitwillbeuseful,

  *butwithoutanywaRRanty;withouteventheimpliedwarrantyof

  *meRchantabilityorFitnessFoRapaRticulaRpuRpose.seethegnu

  *lessergeneralpubliclicenseformoredetails.

  *

  *youshouldhavereceivedacopyofthegnulessergeneralpublic

  *licensealongwiththislibrary;ifnot,writetotheFreesoftware

  *Foundation,inc.,51Franklinstreet,FifthFloor,boston,ma02110-1301usa

  *

  *@categoryphpexcel

  *@packagephpexcel

  *@copyrightcopyright(c)20xx-20xxphpexcel(/phpexcel)*@licensehttp:

///package/spreadsheet_excel_writer

  此类依赖于ole,下载地址:

  需要注意的是导出的excel文件格式比较老,修改后保存会提示是否转换成更新的格式。

不过可以设定格式,很强大。

  php代码

    require_once‘spreadsheet/excel/writer.php’;

  //creatingaworkbook

  $workbook=newspreadsheet_excel_writer();

  //sendinghttpheaders

  $workbook->send(’test.xls’);

  //creatingaworksheet

  $worksheet=

  //theactualdata

  $worksheet->write(0,0,‘name’);

  $worksheet->write(0,1,‘age’);

  $worksheet->write(1,0,‘johnsmith’);

  $worksheet->write(1,1,30);

  $worksheet->write(2,0,‘johannschmidt’);

  $worksheet->write(2,1,31);

  $worksheet->write(3,0,‘juanherrera’);

  $worksheet->write(3,1,32);

  //let’ssendthefile

  $workbook->close();

  >

  3:

利用smarty,生成符合excel规范的xml或html文件

  支持格式,非常完美的导出方案。

不过导出来的的本质上还是xml文件,如果用来导入就需要另外处理了。

  详细内容请见rardge大侠的帖子:

  需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:

expandedcolumncount=”5″ss:

expandedRowcount=”21″”之类的东西删掉。

  4、利用pack函数打印出模拟excel格式的断句符号,这种更接近于excel标准格式,用office20xx修改后保存,还不会弹出提示,推荐用这种方法。

  缺点是无格式。

  php代码

    //sendheader

  header(”pragma:

public”);

  header(”expires:

0″);

  header(”cache-control:

must-revalidate,post-check=0,pre-check=0″);

  header(”content-type:

application/force-download”);

  header(”content-type:

application/octet-stream”);

  header(”content-type:

application/download”);;

  header(”content-disposition:

attachment;filename=test.xls“);

  header(”content-transfer-encoding:

binary“);

  //xlsdatacell

  xlsboF();

  xlswritelabel(1,0,”myexcellineone”);

  xlswritelabel(2,0,”myexcellinetwo:

“);

  xlswritelabel(2,1,”helloeverybody”);

  xlseoF();

  functionxlsboF(){

  echopack(”ssssss”,0×809,0×8,0×0,0×10,0×0,0×0);

  return;

  }

  functionxlseoF(){

  echopack(”ss”,0×0a,0×00);

  return;

  }

  functionxlswritenumber($Row,$col,$Value){

  echopack(”sssss”,0×203,14,$Row,$col,0×0);

  echopack(”d”,$Value);

  return;

  }

  functionxlswritelabel($Row,$col,$Value){

  $l=strlen($Value);

  echopack(”ssssss”,0×204,8+$l,$Row,$col,0×0,$l);

  echo$Value;

  return;

  }

  >

  不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。

  5、使用制表符、换行符的方法

  制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行。

  header(”content-type:

application/vnd.ms-execl”);

  header(”content-disposition:

attachment;filename=myexcel.xls”);

  header(”pragma:

no-cache”);

  header(”expires:

0″);

  /*firstline*/

  echo“hello”.”\t”;

  echo“world”.”\t”;

  echo“\t\n”;

  /*startofsecondline*/

  echo“thisissecondline”.”\t”;

  echo“hi,prettygirl”.”\t”;

  echo“\t\n”;

  >

  6、使用com

  如果你的php可以开启com模块,就可以用它来导出excel文件

  php代码

    $filename=“c:

/spreadhseet/test.xls”;

  $sheet1=1;

  $sheet2=“sheet2″;

  篇二:

php利用phpexcel类导出导入excel用法

  php利用phpexcel类导出导入

  excel用法

  phpexcel类是php一个excel表格处理插件了,下面我来给大家介绍利用phpexcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(phpexcel自己XX下载这里不介绍了)。

  导出excel用法

  //设置环境变量(新增phpexcel)代码如下

  set_include_path(..path_sepaRatoR.yii:

:

app()->basepath./lib/phpexcel.path_sepaRatoR.

  get_include_path());

  //注:

在yii中,也可以直接yii:

:

import(“application.lib.phpexcel.*”);

  //引入phpexcel相关文件require_once"phpexcel.php";

  require_oncephpexcel/ioFactory.php;

  require_oncephpexcel/writer/excel5.php;

  //把要导出的内容放到表格

  代码如下

  //新建

  $resultphpexcel=newphpexcel();

  //设置参数

  //设值

  $resultphpexcel->getactivesheet()->setcellValue(a1,季度);复制代码复制代码

  $resultphpexcel->getactivesheet()->setcellValue(b1,名称);

  $resultphpexcel-getactivesheet()->setcellValue(c1,数量);

  $i=2;

  foreach($dataas$item){

  $resultphpexcel->getactivesheet()->setcellValue(a.$i,$item[quarter]);

  $resultphpexcel->getactivesheet()->setcellValue(b.$i,$item[name]);

  $resultphpexcel->getactivesheet()->setcellValue(c.$i,$item[number]);

  $i++;

  }

  设置导出参数代码如下

  //设置导出文件名

  $outputFilename=total.xls;

  $xlswriter=newphpexcel_writer_excel5($resultphpexcel);

  //ob_start();ob_flush();

  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("expires:

mon,26jul199705:

00:

00gmt");

  header("last-modified:

".gmdate("d,dmyh:

i:

s")."gmt");

  header("cache-control:

must-revalidate,post-check=0,pre-check=0");

  header("pragma:

no-cache");复制代码

  $xlswriter->save("php:

//output");

  输出有错。

  默认$xlswriter->save("php:

//output");可能因为缓存不够大,而显示不完整,所以做个中转,方式如下:

代码如下

  $finalFilename=(yii:

:

app()->basepath./runtime/.time()..xls;

  $xlswriter->save($finalFilename);

  echofile_get_contents($finalFilename);

  //file_get_contents()函数把整个文件读入一个字符串中。

和file()一样,不同的

  是file_get_contents()把文

  件读入一个字符串。

  导入excel用法代码如下

    if($_post[leadexcel]=="true")

  {

  $filename=$_Files[inputexcel][name];

  $tmp_name=$_Files[inputexcel][tmp_name];

  $msg=uploadFile($filename,$tmp_name);

  echo$msg;

  }

  //导入excel文件

  functionuploadFile($file,$filetempname)复制代码复制代码

  {

  //自己设置的上传文件存放路径

  $filepath=upFile/;

  $str="";

  //下面的路径按照你phpexcel的路径来修改

  require_once../phpexcel/phpexcel.php;

  require_once../phpexcel/phpexcel/ioFactory.php;

  require_once../phpexcel/phpexcel/Reader/excel5.php;

  //注意设置时区

  $time=date("y-m-d-h-i-s");//去当前上传的时间

  //获取上传文件的扩展名

  $extend=strrchr($file,.);

  //上传后的文件名

  $name=$time.$extend;

  $uploadfile=$filepath.$name;//上传后的文件名地址

  //move_uploaded_file()函数将上传的文件移动到新位置。

若成功,则返回true,否则返回false。

$result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下

  //echo$result;

  if($result)//如果上传文件成功,就执行导入excel操作

  {

  include"conn.php";

  $objReader=phpexcel_ioFactory:

:

createReader(excel5);//useexcel20xxfor20xxformat

  $objphpexcel=$objReader->load($uploadfile);

  $sheet=$objphpexcel->getsheet(0);

  $highestRow=$sheet->gethighestRow();//取得总行数

  $highestcolumn=$sheet->gethighestcolumn();//取得总列数

  /*第一种方法

  //循环读取excel文件,读取一条,插入一条

  for($j=1;$j  {

  for($k=a;$k  {

  //

  这种方法简单,但有不妥,以合并为数组,再分割为字段值插入到数据库实测在excel中,如果某单元格的值包含了导入的数据会为空

  //

  $str.=$objphpexcel->getactivesheet()->getcell("$k$j")->getValue().;//读取单元格}

  //echo$str;die();

  //explode:

函数把字符串分割为数组。

  $strs=explode("",$str);

  $sql="inseRtintote(`1`,`2`,`3`,`4`,`5`)Values(

  {$strs[0]},

  {$strs[1]},

  {$strs[2]},

  {$strs[3]},

  {$strs[4]})";

  //die($sql);

  if(!

mysql_query($sql))

  {

  returnfalse;

  echosql语句有误;

  }

  $str="";

  }

  unlink($uploadfile);//删除上传的excel文件

  篇三:

thinkphp利用phpexcel导出网站数据到excel表格

  thinkphp利用phpexcel导出网站数据到表格

  一、下载phpexcel包,并放在thinkphp文件中

  phpexcel包:

  新建文件夹,命名为phpexcel,将上面两个文件phpexcel,phpexcel.php放到我们新建的phpexcel文件夹下面;然后将此文件夹放在thinkphp核心包里面,路径如下:

d:

\***\你的项目

  \thinkphp\library\Vendor

  二、前端界面代码

  前端界面:

  

  

  

  

  

  

  三、导出表格样式代码:

  //商家表格导出模板

  publicfunctionexportexcel($exptitle,$expcellname,$exptabledata){

  $xlstitle=iconv(utf-8,gb2312,$exptitle);//文件名称

  $filename=网站商家信息表.date(_ymdhis);//or$xlstitle文件名称可根据自己情况设定

  $cellnum=count($expcellname);

  $datanum=count($exptabledata);

  vendor("phpexcel.phpexcel");

  $objphpexcel=new\phpexcel();

  $cellname=array(a,b,c,d,e,F,g,h,i,j,k,l,m,n,o,p,q,R,s,t,u,V,w,x,y,z,aa,ab,ac,ad,ae,aF,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,aR,as,at,au,aV,aw,ax,ay,az);

  $objphpexcel->getactivesheet()->getcolumndimension(F)->setwidth(22);

  $objphpexcel->getactivesheet()->getcolumndimension(d)->setwidth(10);$objphpexcel->getactivesheet()->getcolumndimension(g)->setwidth(10);$objphpexcel->getactivesheet()->getcolumndimension(h)->setwidth(15);$objphpexcel->getactivesheet()->getcolumndimension(a)->setwidth(10);$objphpexcel->getactivesheet()->getcolumndimension(b)->setwidth(15);$objphpexcel->getactivesheet()->getcolumndimension(c)->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension(e)->setwidth(15);$objphpexcel->getactivesheet()->getcolumndimension(i)->setwidth(20);

  $objphpexcel->getactivesheet()->getcolumndimension(j)->setwidth(10);

  $objphpexcel->getactivesheet()->getcolumndimension(k)->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension(l)->setwidth(20);

  $objphpexcel->getactivesheet()->getcolumndimension(m)->setwidth(25);$objphpexcel->getactivesheet()->getcolumndimension(l)->setwidth(22);

  $objphpexcel->getactivesheet()->getcolumndimension(m)->setwidth(12);$objphpexcel->getactivesheet()->getcolumndimension(n)->setwidth(15);

  $objphpexcel->getactivesheet(0)->mergecells(a1:

.$cellname[$cellnum-1].1);

  //合并单元格

  $objphpexcel->getactivesheet()->setcellValue(a1,网站商家信息表

  )->getstyle()->getalignment()->sethorizontal(\phpexcel_style_alignment:

:

hoRizontal_centeR);

  for($i=0;$i  $objph

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1