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>