php读取excel内容
① php 读取excel
第一个是PHPExcelReader,另外一个是PHPExcel。
PHPExcelReader比较轻量级,仅支持的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)。
PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。
下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:
1
2
3
4
5
6
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php'; //修改为自己的目录
echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
$objReader = PHPExcel_IOFactory::createReaderForFile($filename);
$objPHPExcel = $objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。如何通过Sheet名来获得当前Sheet我还不知道,如果有知道的可以站内我。
需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
下面的代码显示了如何遍历显示Excel的内容:
1 <table id="table_id">
2 <?php
3 $objWorksheet = $objPHPExcel->getActiveSheet();
4 $i = 0;
5 foreach($objWorksheet->getRowIterator() as $row){
6 ?>
7 <tr>
8 <?php
9 $cellIterator = $row->getCellIterator();
10 $cellIterator->setIterateOnlyExistingCells(false);
11
12 if( $i == 0 ){
13 echo '<thead>';
14 }
15 foreach($cellIterator as $cell){
16
17 echo '<td>' . $cell->getValue() . '</td>';
18
19 }
20 if( $i == 0 ){
21 echo '</thead>';
22 }
23 $i++;
24 ?>
25 </tr>
26 <?php
27 }
28 ?>
29 </table>
② php excel reader读取excel内容
if($result){//如果上传成功了
import("Org.Util.PHPExcel.Reader.Excel5");//引入PHPExcel类,这是在thinkphp中使用
import("Org.Util.PHPExcel.IOFactory");
import("Org.Util.PHPExcel.Worksheet.MemoryDrawing");
import("Org.Util.PHPExcel");
$fileType=PHPExcel_IOFactory::identify($result);//文件名自动判断文件类型
$objReader=PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel=$objReader->load($result);
$currentSheet=$objPHPExcel->getActiveSheet();
$highestRow=$currentSheet->getHighestRow();
$highestColumn=$currentSheet->getHighestColumn();
$objWorksheet=$objPHPExcel->getActiveSheet();
$highestRow=$objWorksheet->getHighestRow();
$time=time();
//先处理图片
$date=date("YmdH",time());
$TmpPath=UPLOAD_DIR.$date.'/';
if(!mkDirs($TmpPath)){
echo'mkdirerror';exit;
}
$Allnewpic=$currentSheet->getDrawingCollection();//获取文档中所有图片
foreach($Allnewpicas$k=>$drawing){//文档中图处理方法
$image=$drawing->getImageResource();
$filename=$drawing->getIndexedFilename();
$XY=$drawing->getCoordinates();
//把图片存起来
imagepng($image,$TmpPath.$filename);
/*这里后续要做图片压缩处理*/
//把图片的单元格的值设置为图片名称
$cell=$currentSheet->getCell($XY);
$cell->setValue("Upload/image/".$date.'/'.$filename);
}
$goodMsArr=array();
$errorArr=array();
for($row=3;$row<=$highestRow;++$row){
$bn=$objWorksheet->getCellByColumnAndRow(4,$row)->getValue();//E品牌
$link=$objWorksheet->getCellByColumnAndRow(5,$row)->getValue();//F链接
$img=$objWorksheet->getCellByColumnAndRow(6,$row)->getValue();//G图片
$color=preg_replace(array('/\s+/','/\n/'),array('|','|'),trim($objWorksheet->getCellByColumnAndRow(7,$row)->getValue()));//H颜色串
$size=str_replace(array('',',',',','-'),array('|','|','|','|'),trim($objWorksheet->getCellByColumnAndRow(9,$row)->getValue()));//J尺寸串
$price=trim($objWorksheet->getCellByColumnAndRow(12,$row)->getValue());//H价格
//--------------是不是重复导入相同的编号,,网站编号是唯一的
if($m->query("SELECTgoodsIdFROM__PREFIX__goodsWHEREgoodsBn='".$bn."'")){
$errorArr[]="第".$row."行的编号【".$bn."】导入重复";continue;
}
if($bn==""){
$errorArr[]="第".$row."行的编号为空";continue;
}
if($img==""){
$errorArr[]="第".$row."行的图片为空";continue;
}
if($color==""){
$errorArr[]="第".$row."行的颜色为空";continue;
}
if($price==""){
$errorArr[]="第".$row."行的价格为空";continue;
}
$sql="INSERTINTO__PREFIX__goods(`goodsBn`,`goodsLink`,`goodsImg`,`color`,`size`,`marketPrice`,`createTime`)
VALUES('".$bn."','".$link."','".$img."','".$color."','".$size."','".$price."',".time().")";
if(!$m->execute($sql)){
$errorArr[]="第".$row."行的数据导入错误";continue;
}
}
unlink($result);
}else{
echo'fileuploaderror';exit;
}
③ php 怎样读取excel电子表格 - 技术问答
phpchina的贴子里有一篇是关于excel的操作的...还有可以使用COM连接
④ php怎么读取excel 文件数据并输出
PHPExcel
PHPExcel是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, html等等。
PHP读取示例代码
//获取上传的excel临时文件
$path=$_FILES["file"]["tmp_name"];
//将临时文件移动当前目录,可自定义存储位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//将获取在服务器中的Excel文件,此处为上传文件名
$path=$_FILES["file"]["name"];
//调用readExcel函数返回一个
二维数组
$exceArray=readExcel($path);
//创建一个读取
excel函数
functionreadExcel($path){
//引入PHPExcel类库
include'Classes/PHPExcel.php';
include'Classes/PHPExcel/IOFactory.php';
$type='Excel5';//设置为Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader=PHPExcel_IOFactory::createReader($type);
$xlsReader->setReadDataOnly(true);
$xlsReader->setLoadSheetsOnly(true);
$Sheets=$xlsReader->load($path);
//开始读取上传到服务器中的Excel文件,返回一个
二维数组
$dataArray=$Sheets->getSheet(0)->
toArray();
return$dataArray;
}
⑤ phpexcel 读取excel里的数据并在页面显示出来
publicfunctionexcel(){
$list=M('map')->select();//var_mp($list);die;
foreach($listas$key=>$val){
$uid[$key]=$val['uid'];
}
$uid=arr_to_str(array_unique($uid));
$user_info=json_decode(getUserInfoList($uid));
foreach($user_infoas$key=>$val){
if(($username=$val->user_name)||($username=$val->true_name)||($username=$val->email)){
$username=$username;
}
$user_list[$val->id]=$username;
}
$genre=array('','自然灾害','环境问题','其它','社会问题');
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=益图-".date("Ymd",time()).".xls");
echoiconv('utf-8','gb2312','地图标题');echo" ";
echoiconv('utf-8','gb2312','发布人');echo" ";
echoiconv('utf-8','gb2312','介绍');echo" ";
echoiconv('utf-8','gb2312','分类');echo" ";
echoiconv('utf-8','gb2312','发布时间');echo" ";
echo" ";
foreach($listas$key=>$val){
echoiconv('utf-8','gb2312',$val['title']);echo" ";
echoiconv('utf-8','gb2312',$user_list[$val['uid']]);echo" ";
echoiconv('utf-8','gb2312',t($val['content']));echo" ";
echoiconv('utf-8','gb2312',$genre[$val['genre_id']]);echo" ";
echoiconv('utf-8','gb2312',date("Y-m-d",$val['create_time']));echo" ";
echo" ";
}
}
⑥ 如何读取excel文件 php
主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel。
PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)。
PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。
下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:
require_once'/libs/PHPExcel-1.8.0/Classes/PHPExcel.php';//修改为自己的目录
echo'<p>TESTPHPExcel1.8.0:readxlsxfile</p>';
$objReader=PHPExcel_IOFactory::createReaderForFile($filename);
$objPHPExcel=$objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$date=$objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。
需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
echodate("Y-m-dH:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
下面的代码显示了如何遍历显示Excel的内容:
<tableid="table_id">
<?php
$objWorksheet=$objPHPExcel->getActiveSheet();
$i=0;
foreach($objWorksheet->getRowIterator()as$row){
?>
<tr>
<?php
$cellIterator=$row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
if($i==0){
echo'<thead>';
}
foreach($cellIteratoras$cell){
echo'<td>'.$cell->getValue().'</td>';
}
if($i==0){
echo'</thead>';
}
$i++;
?>
</tr>
<?php
}
?>
</table>
⑦ php上传excel文件,如何读取文件中的信息
在网页上传文件并点击打开excel、word文档:
<?php
if($submit && $testfile <> "none ") {
$path= "/home/httpd/html/ "; //绝对路径,注意Linux和Windows下面的格式,windows格式为:c:\\apache2\\htdocs\\
$filename=$testfile_name;
if (!@($testfile,$path.$filename)) {
echo "复制文件失败... <br> \n ";
exit();
}
@unlink($testfile);
echo "文件上传成功!地址为: <a href=\ "$filename\ "> 下载 </a> ";
exit;
}
?>
<form action= " <?php echo $PHP_SELF;?> " method= "post " enctype= "multipart/form-data ">
<input name= "testfile " type= "file " size=20 enctype= "multipart/form-data ">
<input type=submit name=submit value= "开始上传 ">
</form>