我要导出这个表格,导出到excel,怎么做?先创建一个模板,如下

模板如下

在里面设置好单元格的样式,这样就不用我们在代码中设置样式了,很方便

 有个地方要注意,我们的模板中的商品只有一行,但是导出的时候有可能会有多个产品的,所以这里我们要插入新行,如下

但是这样的话,导出的效果如下

 我们只是创建了一个新行,还没有对单元格就行合并,我们还要合并这些单元格,如下

可以了,但是内容没有自动换行,我们直接在模板中设置自动换行,如下

 再来看看效果,发现还是不行,我们再来设置顶部对齐看看,如下

再来看看效果,如下

还是不行,可能是新插入的行,没有这个样式,我们就代码中设置样式,如下

 再来看看效果, 如下

看,可以了,产品名称完整显示出来了,自动换行了

我们设置产品名称顶部向左对齐,如下

$excel->getActiveSheet()->getStyle('D'.$ind)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

再来看看效果,如下

看,可以

其实可以合并为一行,如下

最后导出代码如下

set_time_limit(0);ini_set('memory_limit', '512M');$fill_array = array('fill' => array('type' => \PHPExcel_Style_Fill::FILL_SOLID,'color' => array('rgb' => 'FFFFFF')));$excel = \PHPExcel_IOFactory::load(public_path().'/excel_template/purchase_explorer_template.xlsx');$excel->setActiveSheetIndex(0);$excel->getActiveSheet()->setCellValue('I1', '采购单号:'.$purchase_num);$excel->getActiveSheet()->setCellValue('I2', '创建时间:'.$create_time);$excel->getActiveSheet()->setCellValue('I3', '采购员:'.$creator);$excel->getActiveSheet()->setCellValue('A3', $purchase_num);$excel->getActiveSheet()->setCellValue('E3', $company_name);if(file_exists($img_url)){$objDrawing = new \PHPExcel_Worksheet_Drawing();$objDrawing->setPath($img_url);$objDrawing->setHeight(85);$objDrawing->setWidth(300);$objDrawing->setCoordinates('A1');$excel->getActiveSheet()->getStyle('A1')->applyFromArray($fill_array);$objDrawing->setOffsetX(18);//偏移量$objDrawing->setOffsetY(18);$objDrawing->setRotation(15);$objDrawing->getShadow()->setVisible(true);$objDrawing->getShadow()->setDirection(36);$objDrawing->setWorksheet($excel->getActiveSheet());//$sheet为当前工作表$excel->getActiveSheet()->getRowDimension(1)->setRowHeight(80);}$excel->getActiveSheet()->setCellValue('A4', '采购方:'.$company_name);$excel->getActiveSheet()->setCellValue('A5', '联系人:'.$contact);$excel->getActiveSheet()->setCellValue('A6', '电话:');$excel->getActiveSheet()->setCellValue('G4', '供货方:'.$supplier_name);$excel->getActiveSheet()->setCellValue('G5', '联系人:'.$supply_contact);$excel->getActiveSheet()->setCellValue('G6', '电话:'.$tel);$excel->getActiveSheet()->setCellValue('G7', '地址:'.$address);$excel->getActiveSheet()->setCellValue('A8', '订单交期:'.$eta);/*$excel->getActiveSheet()->setCellValue('B13', $excel_data['fba_ticket']['amazon_fbaid']);$excel->getActiveSheet()->setCellValue('G8', (isset($excel_data['company_tax_number']['eori']) ?' '.$excel_data['company_tax_number']['eori'] :''));$excel->getActiveSheet()->setCellValue('G9', (isset($excel_data['company_tax_number']['eori']) ? $excel_data['company_tax_number']['eori'] : ''));*/$ind = 10;foreach($purchase_info->goods_info as $k=>$v){$excel->getActiveSheet()->insertNewRowBefore($ind,1);  //在操作行的号前加一空行,这空行的行号就变成了当前的行号$excel->getActiveSheet()->mergeCells('B'.$ind.':C'.$ind);$excel->getActiveSheet()->mergeCells('D'.$ind.':E'.$ind);$excel->getActiveSheet()->mergeCells('I'.$ind.':L'.$ind);$excel->getActiveSheet()->getStyle('D'.$ind)->getAlignment()->setWrapText(true)->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);$excel->getActiveSheet()->getStyle('I'.$ind)->getAlignment()->setWrapText(true)->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);$good_img_url = get_good_info_by_sku($v->sku,'image');$excel->getActiveSheet()->setCellValue('A'.$ind, ($k+1));$excel->getActiveSheet()->setCellValue('B'.$ind, $v->sku);//插入图片if(strtolower(substr($good_img_url, 0, 4)) != 'http'){ //本地图片$url = public_path('/storage/'.$good_img_url);if(file_exists($url)){$objDrawing = new \PHPExcel_Worksheet_Drawing();$objDrawing->setPath($url);$objDrawing->setHeight(60);$objDrawing->setWidth(60);$objDrawing->setCoordinates('B'.$ind);$excel->getActiveSheet()->getStyle('B'.$ind)->applyFromArray($fill_array);$objDrawing->setOffsetX(8);//偏移量$objDrawing->setOffsetY(8);$objDrawing->setRotation(15);$objDrawing->getShadow()->setVisible(true);$objDrawing->getShadow()->setDirection(36);$objDrawing->setWorksheet($excel->getActiveSheet());//$sheet为当前工作表$excel->getActiveSheet()->getRowDimension($ind)->setRowHeight(80);}}else{//网络图片$objDrawing = new \PHPExcel_Worksheet_MemoryDrawing();$img_res = getimagesize($good_img_url);//$extension = pathinfo($v['image'],PATHINFO_EXTENSION);$extension = substr($img_res['mime'],strripos($img_res['mime'],"/")+1);$img = false;if(strtolower($extension) == 'jpg' || strtolower($extension) == 'jpeg'){$img = @imagecreatefromjpeg($good_img_url);}elseif(strtolower($extension) == 'png'){$img = @imagecreatefrompng($good_img_url);}elseif(strtolower($extension) == 'gif'){$img = @imagecreatefromgif($good_img_url);}if($img !== false){$objDrawing->setImageResource($img);$objDrawing->setRenderingFunction(\PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT);//渲染方法$objDrawing->setMimeType(\PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);$objDrawing->setHeight(60);//照片高度$objDrawing->setWidth(60); //照片宽度$objDrawing->setCoordinates('B'.$ind);$excel->getActiveSheet()->getStyle('B'.$ind)->applyFromArray($fill_array);$objDrawing->setOffsetX(8);$objDrawing->setOffsetY(8);$objDrawing->setWorksheet($excel->getActiveSheet());$excel->getActiveSheet()->getRowDimension($ind)->setRowHeight(80);}}$excel->getActiveSheet()->setCellValue('D'.$ind, get_good_info_by_sku($v->sku,'name_cn'));$excel->getActiveSheet()->setCellValue('F'.$ind, $v->num);$excel->getActiveSheet()->setCellValue('G'.$ind, $v->price);$excel->getActiveSheet()->setCellValue('H'.$ind, bcmul($v->num,$v->price,4));$excel->getActiveSheet()->setCellValue('I'.$ind, $v->remark);$ind++;}$excel->getActiveSheet()->setCellValue('A'.($ind+1), '合计体积:'.$area.'m³');$excel->getActiveSheet()->setCellValue('G'.($ind+1), '合计重量:'.$weight.'kg');$excel->getActiveSheet()->setCellValue('A'.($ind+2), '运费:'.$freight);$excel->getActiveSheet()->setCellValue('G'.($ind+2), '支付方式:'.$pay_method);$excel->getActiveSheet()->setCellValue('A'.($ind+3), '订单总金额(大写):'.$total_money);$excel->getActiveSheet()->setCellValue('G'.($ind+3), '订单总金额(小写):'.$total_money_for_num.'RMB');$excel->getActiveSheet()->setCellValue('A'.($ind+4), strip_tags($remark));ob_end_clean();//清除缓冲区,避免乱码header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="'.$purchase_num.'.xls"');header('Cache-Control: max-age=0');// 如果是在ie9浏览器下,需要用到这个header('Cache-Control: max-age=1');// 如果你是在ie浏览器或者https下,需要用到这个header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the pastheader('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modifiedheader('Cache-Control: cache, must-revalidate'); // HTTP/1.1header('Pragma: public'); // HTTP/1.0$objWriter = new \PHPExcel_Writer_Excel5($excel);$objWriter->save('php://output');exit;

多出一行,怎么删除?如果我们立即删除的话,如下

看看效果, 如下

没有删除,我们把那个删除语句放在后面就行了,如下

放到下面一点,不要立即删除,放在后面一点,如下

再来导出看看,如下

看,删除了,可以,把那个删除语句放到后面一点就行了,哈哈哈

根据excel模板导出相关推荐

  1. .Net NPOI 根据excel模板导出excel、直接生成excel

    一.根据Excel模板导出excel 1.导入NPOI.dll  2.DAL中添加类ExportExcel.cs using NPOI.SS.UserModel; using System; usin ...

  2. Excel模板导出之动态导出

    说明 目前Magicodes.IE已支持Excel模板导出时使用JObject.Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程. 本功能的想法.部分实现初步源于a ...

  3. Excel模板导出之导出教材订购表

    说明 本教程主要说明如果使用Magicodes.IE.Excel完成教材订购表的Excel模板导出. 要点 本教程使用Magicodes.IE.Excel来完成Excel模板导出 需要通过创建Dto来 ...

  4. 6、jeecg 笔记之 自定义excel 模板导出(一)

    6.jeecg 笔记之 自定义excel 模板导出(一) 1.前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总 ...

  5. 基于Excel模板导出——ExcelTemplate

    什么是ExcelTemplate ExcelTemplate项目是一个基于Excel模板,依靠配置文件描述导出过程的Excel导出工具. 它提供了大量适用于各种场景的常用配置(导出规则),同时提供一些 ...

  6. 使用EasyPoi利用excel模板导出excel表格下载

    前言:使用excel模板导出excel的好处在于可以事先在模板上定义颜色.格式等,适用于模板设计得比较灵活复杂的场景 一.添加jar包 <dependency><groupId> ...

  7. springboot+poi开发excel导出 加载Excel模板导出 Excel批量导出详解

    提到Excel导出功能,可能很多人都使用springmvc框架做过,笔者今天要给大家分享的是基于springBoot开发Excel复杂模板导出功能(所谓复杂模板指在模板里的特定表头里有不同的单元格合并 ...

  8. php excel模板导出、openoffice excel转pdf、多文件压缩下载

    最近两周都在弄关于excel模板导出.excel转pdf.多文件压缩下载.弄得头都大了,接下来说说实现的方法吧. 我用的是laravel5.1的框架,读取模板生成excel,并且插入图片,直接上代码 ...

  9. C#中通过Excel模板导出数据

    一.实现效果 1.1.编写特定格式的Excel模板 1.2.调用Excel模板导出数据 二.实现核心 #region 通过模板导出Excel文件/// <summary>/// 通过模板导 ...

  10. java通过Excel 模板导出复杂统计类excel文档,在ruoyi前后端分离框架中的应用

    Hello, 大家好! 我是不作死就不会死,智商不在线,但颜值超有品的拆家队大队长 --咖啡汪 一只不是在戏精,就是在戏精路上的极品二哈 前几天刚做了java通过Excel 模板导出复杂统计类exce ...

最新文章

  1. python 语音websocket_Python 牺牲性能以提升程序员的工作效率
  2. 数据结构-王道2017-第3章 栈和队列-队列
  3. excel模糊匹配两列文字_Excel快速画出美观饼图
  4. ARC-060C - Tak and Cards - 动态规划
  5. c++ *.h和*.cpp在编译中的作用
  6. PHP的ob输出缓冲函数作用
  7. 如何通过销售发票和日记帐事务信息进行销售交货与退货信息分析
  8. 数组的几种定义方式及初始化
  9. 用python海龟制图画花瓣_Python教程:使用Turtles画出带有花瓣的花
  10. 第4章 类与对象 枚举类
  11. 计算机课件制作,多媒体课件制作photoshop和powerpoint教案
  12. python可以ps吗_Python功能确实非常强大!不止PS可以美化照片Python也可以!满分...
  13. 语音压缩:压缩率和比特率
  14. twilio php 发送短信,如何使用 Twilio 实现语音和短信功能 (PHP) | Microsoft Docs
  15. Redis——有时候expire比exists更好用
  16. stream流、数学类、String类的常用方法、date、密码等
  17. gcc生成静态库.a和动态库.a以及Ubuntu18.04下opencv3.4.11安装及示例
  18. 计算机无法访问iTunes,iPhone连接电脑后iTunes无响应怎么办【解决方法】
  19. Windows无法格式化改卷,改卷已脱机, 请尝试首先向改卷分配驱动器号或路径使其联机
  20. 【LaTex的PPT模板集】- (亲测有效)在线PPT模板及其使用方法,overleaf与TeXstudio支持中文方法

热门文章

  1. ETL(kettle)创建工作任务job详解
  2. [转载] K3漏油器全紫铜替换原硅胶垫教程。标准姿势
  3. python3爬虫系列之使用requests爬取LOL英雄图片
  4. JQuery【选择器】
  5. 王爽汇编语言 实验8
  6. P3646 [APIO2015]巴厘岛的雕塑
  7. Ruby+Watir搭建自动化测试框架
  8. python助教酱酱是谁_papi酱个人资料
  9. (转)唯品会订单分库分表的实践总结以及关键步骤
  10. 深度 | 从Go高性能日志库zap看如何实现高性能Go组件