您好,欢迎访问一九零五行业门户网

PHP处理Excel表格实例方法

本文主要和大家分享php处理excel表格实例方法,包括php导入excel的方法,希望能帮助到大家。
一、php导入excel
使用php-excelreader,下载地址: http://sourceforge.net/projects/phpexcelreader
举例:
<?php require_once 'excel/reader.php'; // excelfile($filename, $encoding); $data = new spreadsheet_excel_reader(); // set output encoding. $data->setoutputencoding('utf8'); $data->read(' wjztest.xls'); error_reporting(e_all ^ e_notice); for ($i = 1; $i <= $data->sheets[0]['numrows']; $i++) { for ($j = 1; $j <= $data->sheets[0]['numcols']; $j++) { echo """.$data->sheets[0]['cells'][$i][$j]."","; } echo "\n"; } ?>
二 、php导入excel
推荐phpexcel,官方网站: http://www.codeplex.com/phpexcel
导入导出都成,可以导出office2007格式,同时兼容2003。
下载下来的包中有文档和例子,大家可以自行研究。
抄段例子出来:
<?php ini_set("display_errors",1);//是否显示报错信息 ini_set('include_path', ini_get('include_path').';d:\\php\\phpexcel 1.6.6\\tests\\classes\\');//设置此页面包含路径 include "classes/phpexcel.php"; include "classes/phpexcel/writer/excel5.php"; //创建一个excel $objphpexcel = new phpexcel(); $objwriter = new phpexcel_writer_excel5($objphpexcel); $objwriter->save("xxx.xls"); ?>
<? //设置phpexcel类库的include path set_include_path('.'. path_separator .'d:\workspace\biznaligy_eh\dev_src\includes\phpexcel' . path_separator . get_include_path()); require_once 'phpexcel.php'; require_once 'phpexcel/writer/excel5.php'; // 用于其他低版本xls require_once 'phpexcel/writer/excel2007.php'; // 用于 excel-2007 格式 // 创建一个处理对象实例 $objexcel = new phpexcel(); // 创建文件格式写入对象实例, uncomment $objwriter = new phpexcel_writer_excel5($objexcel); // 用于其他版本格式 //or //$objwriter = new phpexcel_writer_excel2007($objexcel); // 用于 2007 格式 //$objwriter->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('./zeali.net.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'); ?>
相关推荐:
php处理excel插件phpexcel常用方法详解
php处理excel步骤介绍
php读写excel php处理excel步骤介绍
以上就是php处理excel表格实例方法的详细内容。
其它类似信息

推荐信息