当前位置: 代码迷 >> PHP >> PHPExcel 向单元格插入图片就换行的有关问题
  详细解决方案

PHPExcel 向单元格插入图片就换行的有关问题

热度:194   发布时间:2016-04-28 19:25:58.0
PHPExcel 向单元格插入图片就换行的问题
要用phpexcel从数据库中将表导出为excel格式,表中存放有图片路径现在我的代码如下:
<?php    

require_once 'PHPExcel.php';    
require_once 'PHPExcel/Writer/Excel5.php'; 
include_once 'DB_connmssql.php';

$sql="select.....";



$query = mssql_query($sql);
$items = array();

// 创建一个处理对象实例    
$objExcel = new PHPExcel();    
   
// 创建文件格式写入对象实例, uncomment    
$objWriter = new PHPExcel_Writer_Excel5($objExcel);   
 
//设置文档基本属性    
$objProps = $objExcel->getProperties();    
$objProps->setCreator("tt");    
$objProps->setLastModifiedBy("tt");    
$objProps->setTitle("tt");    
$objProps->setSubject("tt ");    
$objProps->setDescription("tt ");    
$objProps->setKeywords("tt ");    
$objProps->setCategory("变动报表");    
   
//*************************************    
//设置当前的sheet索引,用于后续的内容操作。    
//一般只有在使用多个sheet的时候才需要显示调用。    
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0    
$objExcel->setActiveSheetIndex(0);    
$objActSheet = $objExcel->getActiveSheet();    
   
//设置当前活动sheet的名称    
$objActSheet->setTitle('tttt');    
   
//*************************************    
//    
//设置宽度,这个值和EXCEL里的不同,不知道是什么单位,略小于EXCEL中的宽度
$objActSheet->getColumnDimension('A')->setWidth(20); 
$objActSheet->getColumnDimension('B')->setWidth(15); 


$objActSheet->getRowDimension(1)->setRowHeight(30); 
$objActSheet->getRowDimension(2)->setRowHeight(27); 
$objActSheet->getRowDimension(3)->setRowHeight(16); 
 
//设置单元格的值  
$objActSheet->setCellValue('A1', 'Titile'); 
//合并单元格
$objActSheet->mergeCells('A1:N1'); 
//设置样式
$objStyleA1 = $objActSheet->getStyle('A1');    
$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objFontA1 = $objStyleA1->getFont();    
$objFontA1->setName('宋体');    
$objFontA1->setSize(18);  
$objFontA1->setBold(true);    

//设置居中对齐
$objActSheet->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objActSheet->setCellValue('A2', 'Shoes Picture'); 
$objActSheet->setCellValue('B2', 'Product code'); 
//设置边框
$objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );


$i=1;

$query = mssql_query($sql);
$query1 = mssql_query($sql);
$items=array();
$sales_sum=$sales_sum+$row1["total_sales"];
while($row=mssql_fetch_array($query)){
$row["Photo"]="../picture/".$row["Photo"];
$n=$i+2;
$objActSheet->getStyle('B'.$n)->getNumberFormat()->setFormatCode('@');
$objActSheet->getStyle('E'.$n)->getNumberFormat()->setFormatCode('@');
$objActSheet->getRowDimension($n)->setRowHeight(16);
$objActSheet->getStyle('A'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('B'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );