導航:首頁 > 編程語言 > php讀取excel圖片

php讀取excel圖片

發布時間:2024-07-16 15:18:07

php怎樣讀取excel表格內容

常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。x0dx0ax0dx0a1. 以.csv格式讀取x0dx0ax0dx0a將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。x0dx0ax0dx0a優點:跨平台,效率比較高、可以讀寫。x0dx0ax0dx0a缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。x0dx0ax0dx0aPHP有自帶的分析.csv函數:fgetcsvx0dx0ax0dx0aarray fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )x0dx0ax0dx0ahandle 一個由 fopen()、popen() 或 fsockopen() 產生的有效文件指針。x0dx0ax0dx0alength (可選)必須大於 CVS 文件內最長的一行。在 PHP 5 中該參數是可選的穗亮爛。如果忽略(在 PHP 5.0.4 以後的版本中鍵頃設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。x0dx0ax0dx0adelimiter (可選)設置欄位分界符(只允許一個字元),默認值為逗號。x0dx0ax0dx0aenclosure (可選)設置欄位環繞符(只允許一個字元),默認值為雙引號。該參數是在 PHP 4.3.0 中添加的。 和 fgets() 類似,只除了 fgetcsv() 解析讀入的行並找出 CSV 格式的欄位然後返回一個包含這些欄位的數組。x0dx0ax0dx0afgetcsv() 出錯時返回 FALSE,包括碰到文件結束時。x0dx0ax0dx0a注意: CSV 文件中的空行將被返回為一個包含有單個 null 欄位的數組,不會被當成錯誤。x0dx0ax0dx0a當然也可以自己手動分析字元串。x0dx0ax0dx0a還可以利用fputcsv函數將行格式化為 CSV 並寫入文件指針。x0dx0ax0dx0a2. ODBC鏈接數據源x0dx0ax0dx0a優點:支持多種格式,cvs, xls等。支持讀寫,使用標准SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。x0dx0ax0dx0a缺點:值支持windows伺服器x0dx0ax0dx0a3. PHP自定義類x0dx0ax0dx0a優點:跨平台。某些類支持寫操作。支持.xls二進制文件x0dx0ax0dx0a常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。x0dx0ax0dx0aphpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。x0dx0ax0dx0a該 class 使用的方法可以參考網站下載回來的壓縮檔猜漏中的 example.php。x0dx0ax0dx0a不過我下載回來的 (版本 2009-03-30),有兩點要注意:x0dx0ax0dx0areader.php 中的下面這行要修改x0dx0ax0dx0a將 require_once 『Spreadsheet/Excel/Reader/OLERead.php』;x0dx0ax0dx0a改為 require_once 『oleread.inc』;x0dx0ax0dx0aexample.php 中x0dx0ax0dx0a修改 $data->setOutputEncoding(』CP1251′);x0dx0ax0dx0a為 $data->setOutputEncoding(』CP936′);x0dx0ax0dx0aexample2.php 中x0dx0ax0dx0a修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a為 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a不然中文會有問題。x0dx0ax0dx0a繁體的話可以修改為CP950、日文是CP932,具體可參考codepage說明。x0dx0ax0dx0a修改 $data->read(』jxlrwtest.xls』) 為自己的 excel 文件名,zip 檔中附的 jxlrwtest.xls 應該是壞了。

❷ php怎麼讀取excel 文件數據並輸出

PHPExcel

PHPExcel是用來操作Office Excel 文檔的一個PHP類庫,它基於微軟的OpenXML標准和PHP語言。可以使用它來讀取、寫入不同格式的電子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

//獲取上傳的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;
}

❸ 如何讀取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

比較大條的一個類庫,官方最新版已經蹦到7.多M大了。找了個民間精簡版1.多M的。

下面是這個PHP excel類庫
的一些使用方法要點備忘。來自互聯網。
官方網站:http://phpexcel.codeplex.com/
//設置PHPExcel類庫的include path
set_include_path('.'. PATH_SEPARATOR .
'include path' . PATH_SEPARATOR .
get_include_path());

/**
* 如果使用 Excel5 ,輸出的內容應該是GBK編碼。
*/
require_once 'PHPExcel.php';

//團絕扮 uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用於其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用於 excel-2007 格式

// 創建一個處理對象實例
$objExcel = new PHPExcel();

// 創建文件格式寫入對象實例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用於其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); //塌灶 用於 2007 格式
//$objWriter->setOffice2003Compatibility(true);

//*************************************
//設置文檔基本屬性
$objProps = $objExcel->getProperties();
$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」);

//*************************************
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//預設情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$objExcel->setActiveSheetIndex(0);

$objActSheet = $objExcel->getActiveSheet();

//設置當前活動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->unmergeCells(『B1:C22′);

//*************************************
//設置單元格樣式
//

//設置寬度
$objActSheet->getColumnDimension(『B』)->setAutoSize(true);
$objActSheet->getColumnDimension(『A』)->setWidth(30);

$objStyleA5 = $objActSheet->getStyle(『A5′);

//設置單元格內容的數字格式。
//
//如果使用了 PHPExcel_Writer_Excel5 來生成內容的話,
//這里需要注意,在 PHPExcel_Style_NumberFormat 類的 const 變數定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode
//為 FORMAT_NUMBER 的時候,實際出來的效果被沒有把格式設置為」0″。需要
//修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0×0500) { (第363行附近)前面增加一
//行代碼:
//if($ifmt === 』0′) $ifmt = 1;
//
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。
$objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);

//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName(『Courier New』);
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$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′); // color
$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』);

//從指定的單元格復制樣式信息.
$objActSheet->plicateStyle($objStyleA5, 『B1:C22′);

//*************************************
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName(『ZealImg』);
$objDrawing->setDescription(『Image inserted by Zeal』);
$objDrawing->setPath(『./zeali.net.logo.gif』);
$objDrawing->setHeight(36);
$objDrawing->setCoordinates(『C23′);
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);

//添加一個新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle(『測試2′);

//保護單元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells(『A1:C22′, 『PHPExcel』);

//*************************************
//輸出內容
//
$outputFileName = 「output.xls」;
//到文件
////$objWriter->save($outputFileName);
//or
//到瀏覽器
////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』);

這個php的excel類庫
是目前見到功能最好的。

以上引用自:http://sjolzy.cn/PHP-generated-excel-useful-powerful-php-excel-library.html

你用這個,瀏覽器就會提示下載了(chrome默認是保存在 我的文檔/Downloads里,不會提示下載,不知算不算?^_^)

閱讀全文

與php讀取excel圖片相關的資料

熱點內容
手機系統源碼什麼意思 瀏覽:167
繁體pdf轉簡體 瀏覽:652
雲伺服器更改時間 瀏覽:993
解壓球怎麼過 瀏覽:677
時間伺服器埠為什麼要123 瀏覽:363
思科帶寬配置的命令 瀏覽:54
壓縮模量孔隙比 瀏覽:692
安卓開發如何分析日誌 瀏覽:878
單片機編程小燈 瀏覽:276
oppor9s怎麼給軟體加密 瀏覽:37
java技術平台 瀏覽:184
福昕pdf合成 瀏覽:205
命令性幻聽需要治幾年 瀏覽:866
docker安裝phpfpm 瀏覽:513
智能程序員入門教程 瀏覽:699
長興製作個人網站用什麼app 瀏覽:588
夜晚解壓方式 瀏覽:52
python判斷類型dict 瀏覽:961
設計加密系統示意圖 瀏覽:536
思譯是什麼app 瀏覽:665