PHPExcel 向单元格插入图片就换行的问题 phpexcelphpexcel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 标题换行只需在需要换行的地方加上换行符比如 "Product\ncode"其他的明天说 $objActSheet->setCellValue('A2', 'Shoes Picture'); $objActSheet->setCellValue('B2', 'Product code'); $objActSheet->setCellValue('C2', 'Original Retail Price (VAT)'); $objActSheet->setCellValue('D2', ' Total \nOrdered Qty'); $objActSheet->setCellValue('E2', ' Total Sales Qty'); $objActSheet->setCellValue('F2', 'Sellthru'); $objActSheet->setCellValue('G2', 'Total Sales'); $objActSheet->setCellValue('H2', 'Cumulated Qty'); $objActSheet->setCellValue('I2', 'Cumulated /nQty %'); /n \n都试过了...都不行。 加粗 范例$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);添加图片 范例$objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $objDrawing->setPath('./images/officelogo.jpg'); $objDrawing->setHeight(36); $objDrawing->setCoordinates('B15'); $objDrawing->setOffsetX(110); $objDrawing->setRotation(25); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(45); $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 插入图片的代码该加到哪儿呢?我这样加不对$objDrawing = new PHPExcel_Worksheet_Drawing();while($row=mssql_fetch_array($query)){ if(''!==$row["Photo"]){ $row["Photo"]="../picture/".$row["Photo"]; $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $objDrawing->setPath($row["Photo"]); $objDrawing->setHeight(36); $objDrawing->setCoordinates('B15'); $objDrawing->setOffsetX(110); $objDrawing->setRotation(25); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(45); $objDrawing->setWorksheet($objExcel->getActiveSheet()); } $objDrawing = new PHPExcel_Worksheet_Drawing();要放在循环内,即每个图片需要一个 PHPExcel_Worksheet_Drawing 实例setHeight 图片高setCoordinates 所在单元格setOffsetX 左上角相对单元格的x偏移setRotation 旋转角更多的方法请见文档 我 setCoordinates('B15') (15行B列)你也在 setCoordinates('B15') 吗? 果然这样,但又有个问题,我把图片设置到了图片名称出现的位置。while($row=mssql_fetch_array($query)){ $objDrawing = new PHPExcel_Worksheet_Drawing(); if(''!==$row["Photo"]){ $row["Photo"]="picture/".$row["Photo"]; $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $objDrawing->setPath($row["Photo"]); $objDrawing->setHeight(36); $objDrawing->setCoordinates('A'.$aa);//图片名称所在的单元格 $objDrawing->setOffsetX(80); $objDrawing->setRotation(25); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(45); $objDrawing->setWorksheet($objExcel->getActiveSheet()); $aa++; }出来效果是这样的图片只是出现在单元格的位置,并不是单元格的值要达到下面的效果该怎么设置单元格? 不是说了吗? $objDrawing->setOffsetX(80); //表示图片左边距是 80 $objDrawing->setRotation(25); //表示旋转 25 度显然都不是你需要的你只需设置单元格居中排列批量设置,我一般用 PHPExcel_Style 来写,如 $style_obj = new PHPExcel_Style(); $style_array = array( 'borders' => array( 'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), //'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ), 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ) ); $style_obj->applyFromArray($style_array); $sheet->setSharedStyle($style_obj, "B$y:$x$y");当然一个个的设置也是没有问题的 格式搞定了 现在就剩两个问题了:1、导出图片到cell里面。 2、页面上有导出excel按钮,怎么通过点击按钮,将页面的参数传到后台(前台页面不跳转)以导出对应的excel。大师把这个分数一起拿走吧 小弟分数不多...http://bbs.csdn.net/topics/390730241 1、导出图片上面已经说了,你也做到了。只是要注意调整格式2、导出excel按钮可以是表单的提交按钮,设置表单的 target 指向一个隐藏的 iframe 就不会跳转了<form method=post action=excel.php target=down><input type=submit value='导出excel'></form><iframe name=down style='display:none'></iframe> 大师 再请教个问题,向excel中写入图片时,当图片不存在,phpexcel会抛出异常不能形成excel文件,于是我捕获异常(被注释掉的代码)if(''!==$row["Photo"]){ // $row["Photo"]="picture/".$row["Photo"]; //try{ $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $objDrawing->setPath($row["Photo"]); $objDrawing->setHeight(36); $objDrawing->setCoordinates('A'.$n);//图片名称所在的单元格 $objDrawing->setOffsetX(15); $objDrawing->setRotation(25); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(45); $objDrawing->setWorksheet($objExcel->getActiveSheet());// }catch (Exception $e){// $objDrawing->setName('Logo1');// $objDrawing->setDescription('Logo1');// $objDrawing->setPath("notf.jpg");// $objDrawing->setHeight(36);// $objDrawing->setCoordinates('A'.$n);//图片名称所在的单元格// $objDrawing->setOffsetX(15);// $objDrawing->setRotation(25);// $objDrawing->getShadow()->setVisible(true);// $objDrawing->getShadow()->setDirection(45);// $objDrawing->setWorksheet($objExcel->getActiveSheet());// } }这样就算图片不存在也能导出excel,但导出的excel就是打不开,请问如何解决? if(file_exists("picture/".$row["Photo"])) { ..... $objDrawing->setWorksheet($objExcel->getActiveSheet());} 请问大师 输出pdf文档该怎么输出呢?我这样输出文件很小很小,而且打不开/输出内容 // if($outtype=="pdf"){// header('Content-Type: application/pdf');// header('Content-Disposition: attachment;filename="Global Network.pdf"');// header('Cache-Control: max-age=0');// $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'PDF');// $objWriter->save('php://output');// exit;//}ELSE{$outputFileName = "Global Network.xls"; //到文件 //$objWriter->save($outputFileName); //到浏览器header("Content-Type: application/force-download");header("Content-Type: application/octet-stream");header("Content-Type: application/download");header('Content-Disposition:inline;filename="'.$outputFileName.'"');header("Content-Transfer-Encoding: binary");header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");$objWriter->save('php://output'); //exit;//} ci页面跳转问题,新手求解 咨询学习语方向面的问题?求助 求 支持火狐 ie 的导出表格数据到excel word的js代码 基于语义的功能检索 如何正确获取大于2G的文件的大小? 请各位帮我看一下这个"08"的问题,有点意思,搞不懂了. php.exe应用程序错误["0×100b4d56"指令引用的"0×00000000"内存,该内存不能为"read"]这样的报错是怎么回事? 高分求计数器代码~!要是能在文中讲清道理更好~!~! 谁有compare it! 3.5的注册码??? 跨站脚本攻击危害究竟有多大? dreamweaver怎么看PHP源码 关于mssql和php编码的问题。
比如 "Product\ncode"其他的明天说
$objActSheet->setCellValue('B2', 'Product code');
$objActSheet->setCellValue('C2', 'Original Retail Price (VAT)');
$objActSheet->setCellValue('D2', ' Total \nOrdered Qty');
$objActSheet->setCellValue('E2', ' Total
Sales Qty');
$objActSheet->setCellValue('F2', 'Sellthru');
$objActSheet->setCellValue('G2', 'Total Sales');
$objActSheet->setCellValue('H2', 'Cumulated Qty');
$objActSheet->setCellValue('I2', 'Cumulated /nQty %');
/n \n都试过了...都不行。
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);添加图片 范例
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath('./images/officelogo.jpg');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('B15');
$objDrawing->setOffsetX(110);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
$objDrawing = new PHPExcel_Worksheet_Drawing();
while($row=mssql_fetch_array($query)){
if(''!==$row["Photo"]){
$row["Photo"]="../picture/".$row["Photo"];
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath($row["Photo"]);
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('B15');
$objDrawing->setOffsetX(110);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objExcel->getActiveSheet());
}
要放在循环内,即每个图片需要一个 PHPExcel_Worksheet_Drawing 实例setHeight 图片高
setCoordinates 所在单元格
setOffsetX 左上角相对单元格的x偏移
setRotation 旋转角
更多的方法请见文档
你也在 setCoordinates('B15') 吗?
while($row=mssql_fetch_array($query)){
$objDrawing = new PHPExcel_Worksheet_Drawing();
if(''!==$row["Photo"]){
$row["Photo"]="picture/".$row["Photo"];
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath($row["Photo"]);
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('A'.$aa);//图片名称所在的单元格
$objDrawing->setOffsetX(80);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objExcel->getActiveSheet());
$aa++;
}
出来效果是这样的图片只是出现在单元格的位置,并不是单元格的值
要达到下面的效果该怎么设置单元格?
$objDrawing->setOffsetX(80); //表示图片左边距是 80
$objDrawing->setRotation(25); //表示旋转 25 度
显然都不是你需要的
你只需设置单元格居中排列批量设置,我一般用 PHPExcel_Style 来写,如
$style_obj = new PHPExcel_Style();
$style_array = array(
'borders' => array(
'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
//'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN)
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
'wrap' => true
)
);
$style_obj->applyFromArray($style_array);
$sheet->setSharedStyle($style_obj, "B$y:$x$y");当然一个个的设置也是没有问题的
1、导出图片到cell里面。
2、页面上有导出excel按钮,怎么通过点击按钮,将页面的参数传到后台(前台页面不跳转)以导出对应的excel。
大师把这个分数一起拿走吧 小弟分数不多...http://bbs.csdn.net/topics/390730241
2、导出excel按钮可以是表单的提交按钮,设置表单的 target 指向一个隐藏的 iframe 就不会跳转了
<form method=post action=excel.php target=down>
<input type=submit value='导出excel'>
</form>
<iframe name=down style='display:none'></iframe>
if(''!==$row["Photo"]){
// $row["Photo"]="picture/".$row["Photo"];
//try{
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath($row["Photo"]);
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('A'.$n);//图片名称所在的单元格
$objDrawing->setOffsetX(15);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objExcel->getActiveSheet());
// }catch (Exception $e){
// $objDrawing->setName('Logo1');
// $objDrawing->setDescription('Logo1');
// $objDrawing->setPath("notf.jpg");
// $objDrawing->setHeight(36);
// $objDrawing->setCoordinates('A'.$n);//图片名称所在的单元格
// $objDrawing->setOffsetX(15);
// $objDrawing->setRotation(25);
// $objDrawing->getShadow()->setVisible(true);
// $objDrawing->getShadow()->setDirection(45);
// $objDrawing->setWorksheet($objExcel->getActiveSheet());
// }
}
这样就算图片不存在也能导出excel,但导出的excel就是打不开,请问如何解决?
.....
$objDrawing->setWorksheet($objExcel->getActiveSheet());
}
我这样输出文件很小很小,而且打不开
/输出内容
// if($outtype=="pdf"){
// header('Content-Type: application/pdf');
// header('Content-Disposition: attachment;filename="Global Network.pdf"');
// header('Cache-Control: max-age=0');// $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'PDF');
// $objWriter->save('php://output');
// exit;
//}ELSE{$outputFileName = "Global Network.xls";
//到文件
//$objWriter->save($outputFileName);
//到浏览器
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');
//exit;
//}