本文主要和大家分享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表格实例方法的详细内容。