phpexcel导出到图像优秀

时间:2014-04-03 06:16:24

标签: php mysql image excel

我的数据库中有一个表,其中包含许多项目的数据及其图像名称。

从该表中我想用其图像显示每个项目数据。这是我用来在PHP中显示它的代码:

<table>
<thead>
  <tr>
    <th style="border-width:medium;" rowspan="2">CODE</th>
    <th style="border:medium;" rowspan="2">CLR</th>
    <th style="border-width:medium;" rowspan="2">IMAGE</th>
    <th style="border-width:medium;" rowspan="2">DESCRIPTION</th>
    <th style="border-width:medium;" rowspan="2">QTY.</th>
    <th style="border-width:medium;" rowspan="2">PRICE</th>
  </tr>
</thead>
<tbody>
<?php foreach($list as $data){?>
  <tr>
    <td><?=$data->code_caption?></td>
    <td style="text-align:center"><?=$data->color?></td>
    <td style="width:135px; height:135px; text-align:center;">
    <img src="<?=base_url().'media/img/gallery/items/'.$data->image?>TH.jpg" style="margin:5px; text-align:center; vertical-align:middle;" />
    </td>
    <td><?=$data->desc?></td>
    <td style="text-align:center"><?=$data->qty?></td>
    <td style="text-align:right"><?=$data->price?></td>
  </tr>
<?php }?>
</tbody>
</table>

我想将数据导出为Excel格式的文件,因此它看起来就像我在PHP页面上显示的那样。

可以吗?

我曾尝试使用Excel标题,但图片会成为链接,而不是嵌入的完整图片。

我也看到了PHPexcel库,但我找不到用图像编写循环的方法。

我的问题的任何解决方案都会非常有用。

1 个答案:

答案 0 :(得分:4)

感谢您的帮助,我已经为自己的问题找到了答案。

    <?php

    $rowNumber = 12;
    foreach($list as $data){
$this->excel->getActiveSheet()->setCellValue('A'.$rowNumber, $data->code_caption)
->setCellValue('B'.$rowNumber, $data->color);

if(file_exists('./media/img/gallery/items/'.$data->image.'TH.jpg'))
{
    $objDrawing = new PHPExcel_Worksheet_Drawing();
    $objDrawing->setPath('./media/img/gallery/items/'.$data->image.'TH.jpg');
    $objDrawing->setCoordinates('C'.$rowNumber);
    $objDrawing->setWorksheet($this->excel->getActiveSheet());
    $this->excel->getActiveSheet()->getRowDimension($rowNumber)->setRowHeight(120);
}
else
{
    $this->excel->getActiveSheet()->setCellValue('C'.$rowNumber, '');
}

$this->excel->getActiveSheet()->setCellValue('D'.$rowNumber, $data->desc);
$this->excel->getActiveSheet()->setCellValue('E'.$rowNumber, $data->$d_met);
$this->excel->getActiveSheet()->setCellValue('F'.$rowNumber, $data->$w_met);
$this->excel->getActiveSheet()->setCellValue('G'.$rowNumber, $data->$h_met);
$this->excel->getActiveSheet()->setCellValue('H'.$rowNumber, $data->qty);
$this->excel->getActiveSheet()->setCellValue('I'.$rowNumber,$data->$cur_dat);           
$this->excel->getActiveSheet()->setCellValue('J'.$rowNumber,$data->$total_price);
$rowNumber++;
    }?>