日照市东港区创新电子技术中心
ndfweb.cn

php 的 PHPExcel1.8.0 使用


2022-02-22 15:52:40 (6409)


PHPExcel是用来操作Office Excel文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的Excel表格。

注意:

PHPExcel 已经停止维护了,我现在做的是老项目,老项目php版本较低,而且对性能没太大的要求所以才会使用PHPExcel,如果是新项目最好是用PhpSpreadsheet

下载PHPExcel

复制代码1LANGUAGE-RUBYhttps://github.com/PHPOffice/PHPExcel

PHPExcel1.8.0 的目录结构

下载下来目录如下图,我们只需要关注下面几个:

2020-04-30_142728

Classes : 主要类文件,我们主要是使用这个文件夹

Docmentation : 文档

Examples : 例子

composer.json : 主要的配置文件

使用PHPExcel的要求

打开composer.json 可以看到所需要的的环境要求

2020-04-30_144042

复制代码12345678LANGUAGE-SHELL必须:
1.PHP版本高于5.2.0
2.mbstring扩展
3.xml扩展
4.xmlwriter扩展
推荐要有:
1.zip扩展
2.gd扩展

满足php版本高于5.2并且安装了5个扩展后,将classes里的文件拷贝一份放入创建的phpexcel文件夹中,开始使用。

PHPExcel基本使用

excel 文件的创建和保存

复制代码123456789101112131415161718192021222324252627282930313233PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//1.文件的创建//创建PHPExcel对象$obj = new PHPExcel();//写入excel操作//使用工厂的方式创建excel写入对象//第二个参数可以写'excel2007'或者 ''Excel5''// $writer = PHPExcel_IOFactory::createWriter($obj, 'Excel5');$writer = PHPExcel_IOFactory::createWriter($obj, 'excel2007');//或如下方式$writer = new PHPExcel_Writer_Excel5($obj);//2.文件的保存//可以保存文件到本地$writer->save('1.xls');//文件名乱码的解决$filename = iconv('utf-8', 'gbk', '中文.xls');$writer->save($filename);//也可以浏览器输出header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="文件名.xls"');header('Cache-Control: max-age=0');$writer->save('php://output'); 
//内容乱码问题//使用浏览器输出时,header头部加上(也就是前面)ob_end_clean();?>

操作工作表和设置单元格的值

复制代码12345678910111213141516171819202122232425262728293031323334353637PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//1.文件的创建//创建PHPExcel对象$obj = new PHPExcel();//创建excel文件写入对象$writer = new PHPExcel_Writer_Excel5($obj);//操作工作表(worksheet)//创建工作表方法一$sheet = new PHPExcel_Worksheet($obj, 'new sheet');$obj->addSheet($sheet);//创建工作表方法二$obj->createSheet();//设置当前工作表,也就是excel从左往右,从0开始$obj->setActiveSheetIndex(0); 
//得到当前工作表对象$curSheet = $obj->getActiveSheet();//往工作表中插入数据
 //设置单元格的值$curSheet->setCellValue('A1', '10');$curSheet->setCellValue('A2', '20');$curSheet->setCellValue('A3', '=sum(A1:A2)');ob_end_clean();//浏览器输出header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="测试写入单元格.xls"');header('Cache-Control: max-age=0');$writer->save('php://output');?>

效果如下图:

2020-04-30_160724

设置样式

复制代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//1.文件的创建//创建PHPExcel对象$obj = new PHPExcel();//创建excel文件写入对象$writer = new PHPExcel_Writer_Excel5($obj);//操作工作表(worksheet)//创建工作表方法一$sheet = new PHPExcel_Worksheet($obj, 'new sheet');$obj->addSheet($sheet);//创建工作表方法二$obj->createSheet();//设置当前工作表,也就是excel从左往右,从0开始$obj->setActiveSheetIndex(0); 
//得到当前工作表对象$curSheet = $obj->getActiveSheet();//往工作表中插入数据 //设置单元格的值$curSheet->setCellValue('A1', '10');$curSheet->setCellValue('A2', '20');$curSheet->setCellValue('A3', '=sum(A1:A2)');//设置样式//加粗$curSheet->getStyle('A1')->getFont()->setBold(true);//斜体$curSheet->getStyle('A1')->getFont()->setItalic(true);//字体颜色$curSheet->getStyle('A1')->getFont()->setColor(new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_DARKGREEN));//字体$curSheet->getStyle('A1')->getFont()->setName('宋体');//字体大小$curSheet->getStyle('A1')->getFont()->setSize(20);//设置列宽$curSheet->getColumnDimension('A')->setWidth(20);$curSheet->getColumnDimension('A')->setAutoSize(true);//设置行高$curSheet->getRowDimension('1')->setRowHeight(20);//设置边框$curSheet->getStyle('A1')->getBorders()->getTop()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);//设置边框颜色$curSheet->getStyle('A1')->getBorders()->getTop()->getColor()->setARGB('FF336600');//设置填充色$curSheet->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);$curSheet->getStyle('A1')->getFill()->getStartColor()->setARGB('FFFF0000');ob_end_clean();//浏览器输出header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="测试设置样式.xls"');header('Cache-Control: max-age=0');$writer->save('php://output');?>

效果如下图:

2020-04-30_161507

单元格的合并、多行多列合并、插入行、删除行、插入列、删除列

复制代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//1.文件的创建//创建PHPExcel对象$obj = new PHPExcel();//创建excel文件写入对象$writer = new PHPExcel_Writer_Excel5($obj);//操作工作表(worksheet)//创建工作表方法一$sheet = new PHPExcel_Worksheet($obj, 'new sheet');$obj->addSheet($sheet);//创建工作表方法二$obj->createSheet();//设置当前工作表,也就是excel从左往右,从0开始$obj->setActiveSheetIndex(0); 
//得到当前工作表对象$curSheet = $obj->getActiveSheet();//往工作表中插入数据
 //设置单元格的值$curSheet->setCellValue('A1', '10');$curSheet->setCellValue('A2', '20');$curSheet->setCellValue('A3', '=sum(A1:A2)');//单元格的合并$curSheet->mergeCells('A1:A3');//多行多列合并$col1 = 2;//第三列$row1 = 2;//第三行$col2 = 3;//第四列$row2 = 3;//第四行$curSheet->mergeCellsByColumnAndRow($col1,$row1,$col2,$row2);//插入一行(在before之前插入$rowNums行)$curSheet->insertNewRowBefore($before=1, $rowNums=1);//删除行(从row开始删除$rowNums行)$curSheet->removeRow($row=1,$rowNums=1);//插入列(在before之前添加$colNums列)$curSheet->insertNewColumnBefore($before='A', $colNums=1);//删除列(从col开始删除$colNums列)$curSheet->removeColumn($col='A', $colNums);ob_end_clean();//浏览器输出header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="测试合并-插入-删除.xls"');header('Cache-Control: max-age=0');$writer->save('php://output');?>

效果如下图:

2020-04-30_163209

插入图片

复制代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//1.文件的创建//创建PHPExcel对象$obj = new PHPExcel();//创建excel文件写入对象$writer = new PHPExcel_Writer_Excel5($obj);//操作工作表(worksheet)//创建工作表方法一$sheet = new PHPExcel_Worksheet($obj, 'new sheet');$obj->addSheet($sheet);//创建工作表方法二$obj->createSheet();//设置当前工作表,也就是excel从左往右,从0开始$obj->setActiveSheetIndex(0); 
//得到当前工作表对象$curSheet = $obj->getActiveSheet();//往工作表中插入数据//插入图片// 1、创建图片操作对象$img = new PHPExcel_Worksheet_Drawing();// 2、设置图片路径$img->setPath("./1.jpg");// 3、设置图片宽高$img->setWidth(533);$img->setHeight(533);// 4、设置图片插入位置$img->setCoordinates('A1');// 5、设置图片偏移量$img->setOffsetX(100);// 6、设置图片倾斜$img->setRotation(25);// 7、添加到工作表$img->setWorksheet($curSheet);ob_end_clean();//浏览器输出header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="测试插入图片.xls"');header('Cache-Control: max-age=0');$writer->save('php://output');?>

效果如下图:

2020-04-30_164006

读取excel相关的操作函数

复制代码12345678910111213141516171819202122232425262728293031323334PHP//创建excel读对象$reader = PHPExcel_IOFactory::createReader('Excel5');//or$reader = new PHPExcel_Reader_Excel5();//得到excel操作对象$excel = PHPExcel_IOFactory::load(excel路径);//or$excel = $reader->load(excel路径); 
//获取表的相应数据
 //获取工作表数量$excel->getSheetCount(); 
//获取工作表名$excel->getSheetNames(); 
//根据表名切换当前工作表$excel->setActiveSheetIndexByName(); 
//获取整个内容返回数组$excel->getActiveSheet()->toArray(); 
//通过reader对象获取excel表的信息$reader->listWorkSheetInfo(路径);$reader->listWorkSheetNames(路径); 
//获取当前工作表最大行数$excel->getActiveSheet()->getHighestRow();//获取当前工作表最大列数$excel->getActiveSheet()->getHighestColumn(); 
//获取单个单元格内容$curSheet->getCell('A1')->getValue();

循环读取excel中所有Sheet数据

先准备数据:

Sheet1:

2020-04-30_170050

Sheet2:

2020-04-30_170122

循环读取示例:

复制代码123456789101112131415161718192021222324252627282930313233343536373839404142PHP<?php//引入PHPExcel文件require './Classes/PHPExcel.php';//创建excel读对象$reader = PHPExcel_IOFactory::createReader('Excel5');//得到excel操作对象$excel = PHPExcel_IOFactory::load('./test.xls');//放入数组$data = array();//获取所有工作表名$SheetNamas = $excel->getSheetNames();//遍历工作表for($i = 0; $i < count($SheetNamas); $i++){    //获取当前工作表名
    $SheetName = $SheetNamas[$i];    //根据表名切换当前工作表
    $excel->setActiveSheetIndexByName($SheetName);    //得到当前工作表对象
    $curSheet = $excel->getActiveSheet();    //获取当前工作表最大行数
    $rows = $curSheet->getHighestRow();    //获取当前工作表最大列数,返回的是最大的列名,如:B 
    $cols = $curSheet->getHighestColumn();    //将当前工作表名当键,内容为值存入数组
    $data[$SheetName] = array();    //大写字母A的ASCII值是65 A-Z对应65-90
    for($j = 'A'; $j <= $cols; $j++ ){        for($k = 1; $k <= $rows; $k++){            $key = $j.$k;            $value = $curSheet->getCell($key)->getValue();            $data[$SheetName][$key] = $value;
        }
    }

}echo json_encode($data);?>

数据如下图:

2020-04-30_175542

读取excel大批量转换成sql

生成大批量的excel数据

复制代码12345678910111213141516171819202122232425PHP<?phpset_time_limit(0);//引入PHPExcel文件require './Classes/PHPExcel.php';$start = microtime(true);$excel = new PHPExcel();$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');$curSheet = $excel->getActiveSheet(); 
$rows = 10000;$cols = range('A', 'M'); 
for($i = 1; $i <= $rows; ++$i) {    foreach($cols as $col) {        $cellName = $col . $i;        $curSheet->setCellValue($cellName, uniqid(mt_rand(), true));
    }
} 
$writer->save('./data.xls');$end = microtime(true);echo $end - $start;?>

批量转化成sql

复制代码123456789101112131415161718192021222324252627282930313233343536373839404142434445PHP<?phpset_time_limit(60);ini_set("memory_limit", "128M"); 
//引入PHPExcel文件require './Classes/PHPExcel.php'; 
$start = microtime(true); 
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; 
$cacheSettings = array(); 
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); 
//加载excel文件$excel = PHPExcel_IOFactory::load('./data.xls');$curSheet = $excel->getActiveSheet(); 
//sql文件保存路径$sqlFile = dirname(__FILE__) . '/data.sql';$fp = fopen($sqlFile, 'ab+'); 
$rows = $curSheet->getHighestRow();$cols = $curSheet->getHighestColumn(); 
//将列名转为列数$cols = PHPExcel_Cell::columnIndexFromString($cols); 
for($i = 1; $i <= $rows; ++$i) {    $rowStr = "INSERT INTO `test` VALUES(NULL,";    for($j = 0; $j < $cols; ++$j) { 
        //将列数转换为列名
        $cellName = PHPExcel_Cell::stringFromColumnIndex($j) . $i;        $cellValue = $curSheet->getCell($cellName)->getValue();        $cellValue = iconv('GBK', 'UTF-8', $cellValue);        $rowStr .= "'{$cellValue}',";
    }    $rowStr = rtrim($rowStr, ",") . ");\r\n";    fwrite($fp, $rowStr);
}fclose($fp); 
 
$end = microtime(true);echo $end - $start;

主要的几个类库和API

复制代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228PHP(1)PHPExcel:工作簿对象

    excel文档处理对象主要用来管理我们的excel文档,怎么来管理(通过属性和方法来管理)?大家知道,类主要是由属性和方法来组成,通过php程序的手段来管理excel文档,其实就是通过本对象的属性和方法来管理,下面我们就来看一下PHPExcel类中都有那些属性和方法,这些属性和方法主要用来管理excel文档的那些方面    
    getProperties():获得当前活动状态工作表的属性对象,返回属性对象    getActiveSheet():获得当前活动状态的工作表,返回工作表对象    getActiveSheetIndex():获得当前活动状态工作表的索引值,返回int
    setActiveSheetIndex():设置当前活动状态工作表的索引,返回工作表对象    getSheetByName():通过工作表名称得到当前工作表对象,返回工作表对象    getDefaultStyle():获得excel文档默认的样式(所有工作表的样式),返回样式对象    createSheet():在当前活动工作表后创建一个新的工作表    getSheetCount():获得excel文档中工作表的数量,返回int
    getSheetNames():获得excel文档中所有工作表名称组成的数组
    
(2)PHPExcel_Worksheet:工作表对象

    工作表对象,主要用来管理我们的工作表,怎么管理?也是通过属性和方法来管理,但是工作表对象大部分情况下可通过excel文档对象来获取    toArray():把工作表中的数据转换成数组    fromArray():从数组中获取数据填充到工作表,返回工作表对象    getCell():获得单元格对象    getCellByColumnAndRow():通过列索引和行索引获得指定单元格,返回单元格对象    getDefaultStyle():获得工作表默认的样式,返回样式对象    getHighestColumn():获得工作表的最大列,返回列的名称    getColumnDimension():获得当前列    getStyle():获得指定单元格的样式,返回样式对象    getParent():获得父类对象,返回excel文档对象    getTitle():获得工作表的标题或名称,返回字符串类型    setCellValue():设置单元格的值,返回工作表对象或单元格对象,完全取决于参数的值    setCellValueByColumnAndRow():通过列索引和行索引设置单元格的值,返回类型同上    setCellValueExplicit():设置单元格的值,并显示指定数据类型,返回工作表对象    setCellValueExplicitByColumnAndRow():通过列和行索引设置单元格值    setTitle():设置工作表标题

(3)PHPExcel_Cell:单元格对象
        
(3)PHPExcel_Style:样式对象,主要用来设置单元格的样式:对齐方式、字体、边框、填充等,跟我们之前学过的css样式差不多,在这里如果想要设置对齐方式、字体大小、边框颜色、等等都是通过样式对象来完成的    
    getActiveCell():获得当前活动的单元格的名称,返回string;如,A1    getActiveSheet():获得当前活动的工作表,返回工作表对象    getAlignment():获得对齐方式对象,返回对齐方式对象    getBorders():获得边框对象,返回边框对象    getFill():获得填充对象    getFont():获得字体对象    setFont():设置字体,返回样式对象

(3)PHPExcel_Style_Alignment:对齐方式对象    
    getHorizontal():获得水平居中方式    getVertical():获得垂直居中方式    setHorizontal():设置水平居中方式,返回对齐方式对象    setVertical():设置垂直居中方式,返回对齐方式对象

    居中方式:
        HORIZONTAL_CENTER 
        HORIZONTAL_CENTER_CONTINUOUS
        HORIZONTAL_GENERAL 
        HORIZONTAL_JUSTIFY 
        HORIZONTAL_LEFT 
        HORIZONTAL_RIGHT 
        VERTICAL_BOTTOM 
        VERTICAL_CENTER 
        VERTICAL_JUSTIFY 
        VERTICAL_TOP 

(3)PHPExcel_Style_Font:字体对象

    setBold():设置字体加粗
    setColor():设置字体颜色
    setItalic():设置字体倾斜
    setName():设置字体名
    setSize():设置字体大小
    setUnderline():设置字体下划线

(4)PHPExcel_Writer_Excel5:写操作对象,主要用来输出xls文件    save(工作簿文件名):将工作簿对象中的数据保存到一个工作簿文件中

(4)PHPExcel_Writer_Excel2007:写操作对象,主要用于输出xlsx文件    save(工作簿文件名):将工作簿对象中的数据保存到一个工作簿文件中

(5)PHPExcel_Reader_Excel5:读操作对象,主要用于输入xls文件    
    canRead():当前reader对象是否能够读工作簿文件    load():从一个工作簿文件中加载工作簿对象,也就是将工作簿文件中的数据加载到工作簿对象中来管理

(6)PHPExcel_IOFactory:读写操作对象    createReader():根据参数的不同,创建不同的读对象:主要作用是读取工作簿文件中的数据    createWriter():根据参数的不同,返回不同的写对象:主要作用是将PHPExcel工作簿对象中的数据写入到一个工作簿文件中    load():从工作簿文件中加载PHPExcel工作簿对象,即:将工作簿文件中数据加载到PHPExcel工作簿对象中来管理


PHPExcel对象:是一个工作簿对象include_once "PHPExcel/Writer/Excel5.php";//主要用于其它低版本,且文件名后缀为xls的文件,如果我们希望生成后缀名为xls格式的excel文件,建议引入此类库include_once "PHPExcel/Writer/Excel2007.php";//主要用于excel2007格式,文件名后缀为xlsx的excel文件,如果我们希望生成后缀名为xlsx格式的excel文件,建议引入此类库$objWriter = new PHPExcel_Writer_Excel5($objExcel);//创建一个文件格式写入对象实例,此对象主要用来写入内容到指定格式的文件,如,写入内容到后缀名为xls格式的excel文件等,用于其它板式的格式$objWriter = new PHPExcel_Writer_Excel2007($objExcel);//创建一个文件格式写入对象实例,此对象主要用来写入内容到指定格式的文件,如,写入内容到后缀名为xls格式的excel文件等,用于excel2007格式$objWriter->setOffice2003Compatibility(true);//兼容office2003//设置文档基本属性  $objProps = $objExcel->getProperties();  //得到PHPExcel_document文档对象$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"); //分类$objExcel->setActiveSheetIndex(0);//设置用户打开excel文件时,看到的首张sheet,如果没有设置,默认为最后一次操作的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->getColumnDimension('B')->setAutoSize(true);$objActSheet->getColumnDimension('A')->setWidth(30);//设置行的高度$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(11.5);  

//格式:主要用来对单元格进行操作,如,设置字体、设置对齐方式、设置边框等$objStyleA5 = $objActSheet->getStyle('A5');//获取A5单元格的样式//设置单元格的字体$objFontA5 = $objStyleA5->getFont(); //获得字体$objFontA5->setName('宋体');//设置字体名称 $objFontA5->setSize(10);  //设置字体大小$objFontA5->setBold(true);//设置字体加粗$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');//顶部边框的颜色 $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');//计算单元格的值$objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)');$objPHPExcel->getActiveSheet()->getCell('B7')->getCalculatedValue();//如果要获取单元格的一个值,首先需要通过工作表的getCell方法获取到一个单元格对象,然后再通过单元格对象的getValue方法得到单元格的值,如果单元格的值是通过计算得到的,则需要使用getCalculatedValue方法获取单元格的值,设置单元格的值,我们只需要通过工作表的setCellValue方法来设置即可//$dateTimeNow=time();$objPHPExcel->getActiveSheet()->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));//41105.75$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);//18:00:54,只是换了一种显示方式,并不会改变原来值的类型echo gettype($objPHPExcel->getActiveSheet()->getCell('C10')->getValue());//doubleecho $objPHPExcel->getActiveSheet()->getCell('C10')->getValue();//41105.75//'2010-10-21'一定要放在引号中,否则显示的值为,1979               文本(推荐)$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicit("D1", '2010-10-21', PHPExcel_Cell_DataType::TYPE_STRING); //特征:字符串类型都是居左显示//添加一个新的worksheet  $objExcel->createSheet();//创建一个新的工作表$objExcel->getSheet(1)->setTitle('测试2');//设置当前工作表的标题//保护单元格  $objExcel->getSheet(1)->getProtection()->setSheet(true); 
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');  

//输出内容到excel文件,并将文件保存在服务器上$objWriter->save("test.xls");//强制输出内容到浏览器下载  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, 26 Jul 1997 05:00:00 GMT"); 
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');//参数-表示直接输出到浏览器,供客户端下载//excel读取对象$PHPReader = new PHPExcel_Reader_Excel5();//创建一个excel文件的读取对象$PHPExcel = $PHPReader->load($filePath);//读取一张excel表,返回excel文件对象$currentSheet = $PHPExcel->getSheet(0);//读取excel文件中的第一张工作表$allColumn = $currentSheet->getHighestColumn();//取得当前工作表最大的列号,如,E$allRow = $currentSheet->getHighestRow();//取得当前工作表一共有多少行//设置工作簿默认的样式$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');$objPHPExcel->getDefaultStyle()->getFont()->setSize(8);  

//合并单元格$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');


了解更多请访问:http://www.ndfweb.cn/news-918.html
  NDF俱乐部
  国际域名注册
  建站咨询
合作伙伴:万网 | 新网 | 新网互联 NDF网站建设淘宝店 | 实用工具 | 外貿網站建設 | 联系我们
鲁公网安备 37110202000336号 Sitemap - RSSRSS订阅