當前位置:首頁 » 編程語言 » php解析excel

php解析excel

發布時間: 2023-05-16 03:00:00

❶ 如何讀取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 文件數據並輸出

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;
}

❸ php怎麼讀取excel文件中的數據 - PHP進階討論

推薦用「PHPExcel」,下載地址「
http://www.codeplex.com/PHPExcel
」,以下是陸首余
壓縮
中的「文檔目錄」和「截圖」![[i]
本帖最後早滾由
cmttp

2008-6-27
03:22
編輯芹爛
[/i]]

❹ PHP使用 PHPExcel 導入excel中的時間後值變為了浮點數

在最近使用phpExcel導入表格中的數據解析時,發現時間導入衡梁後變成了浮點數類似:43911.144555這種

為什麼會出現這種情況呢?

excel軟體中的日期是從 1900-01-01 開始計算的
但是php 是從 1970-01-01開始計算的。
這兩者間有一個天數差 25569
時間是格林威治時間

故此
可以用下面的方法去格式化表格導入的時間咐運運為php時間
d = 25569; //excel和php之間相悄睜差的時間
data - t);

❺ 如何使用PHP導出csv和excel文件

把Excel文件導入mysql:
打開excel文友慧件,可用phpExcel開源的類
或者:
先銀告鉛把excel文件另存鋒好為csv格式,最好是utf8編碼。
fgetcsv() — 從文件指針中讀入一行並解析 CSV 欄位,返回數組

❻ PHPExcel讀取Excel並用Excel中的公式獲取需要的計算結果,效率如何,可行不可行

你好,我現在也是想通過PHPExcel重新給表格內賦值,然後公式計算後再重新取值供使用,想問一下橘攜卜你做成功了嗎?賦值後是否會計算出新的圓穗結隱褲果

❼ php通過finfo判斷excel文件是什麼格式

excel 93-2003後綴為 .xls 的 文件格式是 application/vnd.ms-excel

excel2007格式後綴是 .xlsx 的文件格式是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


php上傳文件,可以通過內置的系統函數$_FILES 獲取文件的信息。


$_FILES數組內容如下: (其中upfile為獲取的表單名稱)
$_FILES['upfile']['name'] 客戶端文件的原名稱。
$_FILES['upfile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['upfile']['size'] 已上傳文件的大小,單位為位元組。
$_FILES['upfile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名


<?php
if(isset($_POST['sub'])){
echo"文件名:".$_FILES['upfile']['name']."<br>";
echo"文件類型:".$_FILES['upfile']['type'];
}

?>
<formenctype="multipart/form-data"method="post"action="f.php">
<inputtype="file"name="upfile"/>
<inputtype="submit"name="sub"value="上傳"/>
</form>


上傳 。xls文件 返回的信息為

文件名:導入收藏證書模板.xls
文件類型:application/vnd.ms-excel


❽ PHP遠程讀取excel文件,怎麼讀取

PHPExcel 通過 PHPExcel_Shared_OLERead 類的 read 方法讀取文件
但 read 方法里使用了 is_readable 函數來確認文件是否存在,而 is_readable 不能作用於 url
所以不可直接遠程讀取
但若繞過 is_readable 函數的話,就是可以的
public function read($sFileName)
{
// Check if file exists and is readable
if(!is_readable($sFileName)) {
throw new Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable.");
}

// Get the file data
$this->data = file_get_contents($sFileName);

❾ PHP如何導出Excel文件

昨天項目里有個新需求,客戶希望把一些數據能導出成為Excel表格,剛開始用PHP原生輸入Excel表格,發現效果不是很理想,於是找到一個比較著名的庫:PHPExcel。下面是一個簡單的demo,分享給大家,希望可以幫到有同樣需求的朋友。

1.網路:phpexcel,結果如圖所示,點擊第一個結果;
PHP導出Excel,PHP輸入Excel

2.進入官網後,找到右邊的download按鈕,下載,下載完成的是一個壓縮文件,解壓放到你的項目目錄里,根據個人情況而定;
PHP導出Excel,PHP輸入Excel
PHP導出Excel,PHP輸入Excel

3.因為這里給大家做演示,所以建了一個測試文件,有點基礎的都能明白是怎麼回事,下面進入代碼;
PHP導出Excel,PHP輸入Excel

4.

//引入PHPExcel庫文件(路徑根據自己情況)

include './phpexcel/Classes/PHPExcel.php';

//創建對象

$excel = new PHPExcel();

//Excel表格式,這里簡略寫了8列

$letter = array('A','B','C','D','E','F','F','G');

//表頭數組

$tableheader = array('學號','姓名','性別','年齡','班級');

//填充表頭信息

for($i = 0;$i < count($tableheader);$i++) {

$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");

}

PHP導出Excel,PHP輸入Excel

5.

//表格數組

$data = array(

array('1','小王','男','20','100'),

array('2','小李','男','20','101'),

array('3','小張','女','20','102'),

array('4','小趙','女','20','103')

);

//填充表格信息

for ($i = 2;$i <= count($data) + 1;$i++) {

$j = 0;

foreach ($data[$i - 2] as $key=>$value) {

$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");

$j++;

}

}

PHP導出Excel,PHP輸入Excel

6.

//創建Excel輸入對象

$write = new PHPExcel_Writer_Excel5($excel);

header("Pragma: public");

header("Expires: 0");

header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

header("Content-Type:application/force-download");

header("Content-Type:application/vnd.ms-execl");

header("Content-Type:application/octet-stream");

header("Content-Type:application/download");;

header('Content-Disposition:attachment;filename="testdata.xls"');

header("Content-Transfer-Encoding:binary");

$write->save('php://output');

PHP導出Excel,PHP輸入Excel

7.打開頁面,刷新的時候會彈出對話框,讓你選擇文件保存路徑和文件名稱,我直接放在了桌面上,如圖所示;
PHP導出Excel,PHP輸入Excel
PHP導出Excel,PHP輸入Excel

8.打開表格後,數據和格式跟代碼中的一致,說明PHP導出的Excel是正確的。如果出現錯誤,檢查一下你的表格數組和數據數組吧。
PHP導出Excel,PHP輸入Excel

❿ 基於php中使用excel的簡單介紹

在工作中需要處理多語言的翻譯問題,翻譯都是寫在excel表格裡面。為了處理方便我就保留中文和英文兩列。
這樣需要將這些數據從excel中取出來,然乎保存在excel的數組中,通過使用循環數組將相應的數據放入到資料庫中。
所以工作的第一步就是要將數據從excel中取出來。這里我使用到了一個開源php處理excel類:phpexcel.
該項目的詳細信息
http://phpexcel.codeplex.com/

我目前使用的是phpexcel1.7.3版本,
解壓縮後裡面有一個PHPExcel和PHPExcel.php文件。
我們主要使用那個PHP文件。見下圖文件目錄結構
這個版本據說是可以支持excel2007,但是我使用2007編輯的xlsx是無法獲得該庫的支持。於是乎我就將它轉化為2003。感覺支持地很好。
下面介紹一下具體的使用:
復制代碼
代碼如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$php_excel_obj
=
new
PHPExcel();
$php_reader
=
newPHPExcel_Reader_Excel2007();
if(!$php_reader->canRead($file_name)){

$php_reader=
new
PHPExcel_Reader_Excel5();

if(!$php_reader->canRead($file_name)){

echo'NO
Excel!'

}
}
$php_excel_obj
=
$php_reader->load($file_name);
$current_sheet
=$php_excel_obj->getSheet(0);
上面的主要功能是初始化相關的excel類,並裝載excel第一個sheet
復制代碼
代碼如下:
$all_column
=$current_sheet->getHighestColumn();
$all_row
=$current_sheet->getHighestRow();
以上分別獲得該表格的最大列值(字母表示如:『G'),和最大的行數(數值表示)
下面將使用循環來講excel裡面的數據讀到excel中:
復制代碼
代碼如下:
$all_arr
=
array();
$c_arr
=
array();
//字元對照表
for($r_i
=
1;
$r_i<=$all_row;
$r_i++){

$c_arr=
array();

for($c_i=
'A'
$c_i<=
'B'
$c_i++){

$adr=
$c_i
.
$r_i;

$value=
$current_sheet->getCell($adr)->getValue();

if($c_i==
'A'
&&
empty($value)
)
break;

if(is_object($value))
$value=
$value->__toString();

$c_arr[$c_i]=
$value;

}

$c_arr&&
$all_arr[]
=
$c_arr;
}
下面簡單地介紹一下phpexcel的寫操作,這個操作經常用於將資料庫中的數據導入到excel中,便於展示和做成更美觀的效果。
復制代碼
代碼如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$excel_obj
=
new
PHPExcel();
$objWriter
=
newPHPExcel_Writer_Excel5($excel_obj);
$excel_obj->setActiveSheetIndex(0);
$act_sheet_obj=$excel_obj->getActiveSheet();
$act_sheet_obj->setTitle('sheet');
$act_sheet_obj->setCellValue('A1',
'字元串內容');
$act_sheet_obj->setCellValue('A2',
26);
$file_name
=
"output.xls";
$objWriter->save($file_name);
代碼很簡單,
首先初始化相關的excel寫類,然後寫入數據,最後保存為xls文件。
輸出的效果見圖

熱點內容
銳龍本編程 發布:2025-07-16 19:35:08 瀏覽:645
初學c語言用什麼軟體 發布:2025-07-16 19:29:12 瀏覽:338
編譯原理實驗分析子程序 發布:2025-07-16 19:28:06 瀏覽:463
長江存儲宿舍有wifi嗎 發布:2025-07-16 19:20:45 瀏覽:872
sqlservertrigger 發布:2025-07-16 19:08:19 瀏覽:400
android中權重 發布:2025-07-16 19:07:26 瀏覽:422
lol界面在哪個文件夾 發布:2025-07-16 19:01:53 瀏覽:937
php文件解壓 發布:2025-07-16 19:01:08 瀏覽:884
日誌中心伺服器怎樣搭建 發布:2025-07-16 19:00:27 瀏覽:605
硬碟加密保護 發布:2025-07-16 18:58:52 瀏覽:40