博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目中phpexcel的基本用法
阅读量:6115 次
发布时间:2019-06-21

本文共 4201 字,大约阅读时间需要 14 分钟。

前提:要下载PHPEXCEL库文件

如:

情形一:对于将数据写入EXCEL表中的用法
header("content-type:text/html;charset=utf-8");require "PHPEXCEL/Classes/PHPExcel.php";require "PHPEXCEL/Classes/PHPExcel/IOFactory.php";require "PHPEXCEL/Classes/PHPExcel/Reader/Excel5.php";require "PHPEXCEL/Classes/PHPExcel/Reader/Excel2007.php";require "PHPEXCEL/Classes/PHPExcel/Reader/Excel2003XML.php";require "PHPEXCEL/Classes/PHPExcel/Writer/Excel2007.php";require "PHPEXCEL/Classes/PHPExcel/Writer/Excel5.php";
$phpexcel = new PHPExcel();

###### 其中包含了 ‘读’‘写’类########

$phpexcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true); //该语句用于换行,但必须与下面配套使用$phpexcel->getActiveSheet() ->setCellValue('A1',"Tilel \n ID");  //请注意这里的 '\n'  ,这与上面的呼应使用的
$phpexcel->getActiveSheet()->setTitle($code_title); //设置比标题
$phpexcel->getActiveSheet()->getStyle('A1:L1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//设置垂直居中
$phpexcel->getActiveSheet()->getColumnDimension('A')->setWidth(2.8); //设置列的宽度
$phpexcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);////设置水平居中
$phpexcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(8);//设置字体大小
$phpexcel->getActiveSheet() ->setCellValue('A'.$i,$row['id']);//写入数据,其中$i,是变量.如$i = 1,2,3,4,5...
$phpexcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$phpexcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$phpexcel->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);$phpexcel->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);//设置水平居中,居左/右
$obj_Writer = PHPExcel_IOFactory::createWriter($phpexcel,'Excel5');$filename = $code_title.".xls";//文件名
//设置headerheader("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$filename.'"'); 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"); $obj_Writer->save('php://output');//输出die();//种植执行

 

情形二:对于将EXCEL表中数据读取的用法
第一步:引用核心库文件,上面已有描述。 $phpexcel = new PHPExcel();  //同上
$filePath = "/data/home/cn/newadmin/product/uploads/cusabio_common.xls"; //引用一个文件路径,并做判断if(file_exists($filePath)){。。。。。。。。。。。。。。。}

 

$PHPReader = new PHPExcel_Reader_Excel5();  ### 1 // $PHPReader = new PHPExcel_Reader_Excel2007();  ### 2###  其中 1和2 的区别,与文件的后缀名有关。如:xls或者xlsx等 // var_dump($PHPReader); if(!$PHPReader->canRead($filePath)){    $PHPReader = new PHPExcel_Reader_Excel5(); //如果不成功的时候用以前的版本来读取        if(!$PHPReader->canRead($filePath)){              echo 'no Excel';               return ;             }     }
$PHPExcel=$PHPReader->load($filePath);          //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推        $currentSheet=$PHPExcel->getSheet(0);         //获取总列数        $allColumn=$currentSheet->getHighestColumn();        //获取总行数        $allRow=$currentSheet->getHighestRow();        // var_dump($allColumn, $allRow);        // exit;          for($currentRow=1;$currentRow<=$allRow;$currentRow++){            //从哪列开始,A表示第一列            for($currentColumn='A';$currentColumn != 'AT';$currentColumn++){                //数据坐标                $address=$currentColumn.$currentRow;                //读取到的数据,保存到数组$arr中                $data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();                 // var_dump($data[$currentRow][$currentColumn]);            }            if($data[1]['A'] != "product_name_cn" && $data[1]['B'] != "product_name_en" && $data[1]['C'] != "product_code"){                 echo "";             echo "";             exit;            }            //判断数组原始是否为空。如果为空,跳出循环            if(empty($data[$currentRow]['A']) && empty($data[$currentRow]['B']) && empty($data[$currentRow]['C'])){                unset($data[$currentRow]);                break;            }        }

 

最后得到的二位数组:$data,就是excel中的数据,剩下的如何调用各种方法。

 

转载地址:http://kgpka.baihongyu.com/

你可能感兴趣的文章
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>