2016-10-04 36 views
0

我必須基於包含文本列的mysql查詢創建Excel報表。其中一列存儲圖像的絕對路徑。我想知道是否可以創建包含圖像可見的報告(如ole?)。我可以在從SQL查詢創建的Excel報告中包含圖像嗎?

基本上,在Excel中,我可以顯示圖像如果我有它的路徑?

+0

這是可能的 - 使用Excel VBA(或任何其他編程語言,可以馬調整excel對象模型)。但我不確定這是不是一個好主意。這會使excel文件變得龐大,而且你必須處理圖像高度。也許你可以通過使它成爲超鏈接來妥協? – Shadow

+0

PHPExcel庫中有一些函數允許您執行此操作 – Hexana

回答

1

你可以用PHPExcel做到這一點。首先,你需要下載最新版本:https://phpexcel.codeplex.com/

這裏是它的一個例子是使用:

include 'PHPExcel.php'; 

// Create new PHPExcel object 
$objPHPExcel = new PHPExcel(); 

// Set properties 
$objPHPExcel->getProperties()->setCreator("Jobin Jose"); 
$objPHPExcel->getProperties()->setLastModifiedBy("Jobin Jose"); 
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHPExcel classes."); 

// Add some data 
// echo date('H:i:s') . " Add some data\n"; 
$objPHPExcel->setActiveSheetIndex(0); 
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); 
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!'); 
//$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello'); 
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!'); 
$objPHPExcel->getActiveSheet()->setTitle('Simple'); 
$gdImage = imagecreatefromjpeg('uploads/t12.jpg'); 
// Add a drawing to the worksheetecho date('H:i:s') . " Add a drawing to the worksheet\n"; 
$objDrawing = new PHPExcel_Worksheet_MemoryDrawing(); 
$objDrawing->setName('Sample image'); 
$objDrawing->setDescription('Sample image'); 
$objDrawing->setImageResource($gdImage); 
$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); 
$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT); 
$objDrawing->setHeight(150); 
$objDrawing->setCoordinates('C1'); 
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 
// Echo done 
echo date('H:i:s') . " Done writing file.\r\n"; 

,因爲它使用2007的Excel類如果你想在上面的代碼將創建一個「XLSX」格式的文件「XLS」格式只是與2005年類儘量不爲得到更改文件格式爲「XLS」,而2005年使用

here爲例

相關問題