我想製作一個導入腳本,它允許用戶將他們的excel文件(擴展名不重要)上傳到我的php應用程序中。在php/mysql中導入帶有圖像的excel文件
應用程序應重新調整項目列表(迄今爲止這麼好)。
在這種情況下的困難是Excel文件包含圖像...
我讀過有關phpexcel庫信息,但它並沒有說明圖片什麼。
有沒有人的想法?
我想製作一個導入腳本,它允許用戶將他們的excel文件(擴展名不重要)上傳到我的php應用程序中。在php/mysql中導入帶有圖像的excel文件
應用程序應重新調整項目列表(迄今爲止這麼好)。
在這種情況下的困難是Excel文件包含圖像...
我讀過有關phpexcel庫信息,但它並沒有說明圖片什麼。
有沒有人的想法?
PHPExcel不支持圖片,雖然它還不支持圖表
編輯
圖表閱讀器支持爲Excel添加2007+的.xlsx文件1.7.7版本PHPExcel
的您可以通過PHPExcel library訪問圖像。
導入影像:
$objPHPExcel = PHPExcel_IOFactory::load("MyExcelFile.xls");
foreach ($objPHPExcel->getSheetByName("My Sheet")->getDrawingCollection() as $drawing) {
if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
ob_start();
call_user_func(
$drawing->getRenderingFunction(),
$drawing->getImageResource()
);
$imageContents = ob_get_contents();
ob_end_clean();
}
}
然後$ imageContents將包含圖像數據可以輸出或保存爲文件等 你可以看到這樣一個問題:PHPExcel: How to insert an image in the first page header and enlarge it to fit it's content?
對於訪問圖像:
活動工作表中所有圖像對象的ArrayObject將返回N乘:
$objPHPExcel->getActiveSheet()->getDrawingCollection() ;
將這些對象要麼PHPExcel_Worksheet_Drawing
或PHPExcel_Worksheet_MemoryDrawing
對象:您可以識別使用is_a()其中。然後,您可以使用適合該類的方法(如API中所述)從文件(用於PHPExcel_Worksheet_Drawing對象)或直接從PHPExcel_Worksheet_MemoryDrawing對象本身讀取圖像數據。方法getName()
和getDescription()
可用於從圖像對象檢索相關值。
現在它也可以與打印頭相關聯的圖像對象:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
可以用來檢索頁眉/頁腳圖像。這是一個PHPExcel_Worksheet_HeaderFooterDrawing對象的數組。所有的PHPExcel_Worksheet_Drawing方法都可以用來從這些對象中提取圖像文件。
@RD:你的問題解決了嗎?你沒有給出任何迴應,這就是我評論的原因。 – 2012-03-27 05:58:28
但是,您如何獲得圖像?! – coderama 2012-03-21 05:42:11
@RD:我也給出了訪問圖片的解決方案。 – 2012-03-21 06:52:06