phpexcel导出到excel与图像 [英] phpexcel export to excel with image

查看:163
本文介绍了phpexcel导出到excel与图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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

 < table> 
< thead>
< tr>
< th style =border-width:medium;行跨度= 2 > CODE< /第>
< th style =border:medium;行跨度= 2 > CLR< /第>
< th style =border-width:medium;行跨度= 2 > IMAGE< /第>
< th style =border-width:medium;行跨度= 2 >说明< /第>
< th style =border-width:medium;行跨度= 2 > QTY< /第>
< th style =border-width:medium;行跨度= 2 > PRICE< /第>
< / 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.jpgstyle =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库,但是我找不到一种写入图像的循环方式。 >

我的问题的任何解决方案将非常有帮助。

解决方案

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

 <?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 ++;
}?>


I have a table in my Database containing the data of many items with the name of its image.

From that table I want to display each item data with its image. This is the code I use to display it in 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>

I want to export the data to an Excel formatted file so it looks like what I display on my PHP page.

Can it be done?

I have tried to use the Excel header but the image becomes a link, it's not the complete image being embedded.

And I also saw the PHPexcel library, but I cannot find a way to write the loop with the image.

Any solution for my problem will be very helpful.

解决方案

Thanks for Helping me I have found the answer for my own question.

    <?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++;
    }?>

这篇关于phpexcel导出到excel与图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆