2016-10-04 10 views
0

テキスト列を含むmysqlクエリに基づいて、Excelレポートを作成する必要があります。これらの列の1つに画像の絶対パスが格納されます。表示可能なイメージ(ole?)を含むレポートを作成することが可能かどうかは疑問だ。SQLクエリから作成されたExcelレポートに画像を含めることはできますか?

基本的に、Excelでは、画像を表示することはできますか?

+0

を参照しながら、「XLS」にファイル形式を変更するには取得しないために2005年のクラスにしてみてくださいmaできる言語エクセルオブジェクトモデルを除外する)。しかし、私はそれが良い考えであるかどうか分からない。それは、Excelファイルを巨大にすると同時に、画像の高さに対処する必要があります。おそらくあなたはそれをハイパーリンクにすることによって妥協することができますか? – Shadow

+0

PHPExcelライブラリにはこれを可能にする関数があります – Hexana

答えて

1

PHPExcelでこれを行うことができます。必要であれば、それは2007エクセルクラスを使用しているため、上記のコードは、「XLSX」形式のファイルを作成します

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

https://phpexcel.codeplex.com/

そして、ここではそれの使用の例である:第一に、あなたは、最新バージョンをダウンロードする必要がありますエクセルVBA(または他のプログラミングを使用して - 「XLS」フォーマットは、ちょうど2005年

を使用することが可能です例えばhere

関連する問題