日期: 2020年6月17日

分类: PHP

Tags: Excel

阅读量: 1,221

一、描述需求

如图,当我们遇到一条数据中,某一项内容有多条数据,为了方便文档查阅,我们需要在那一项数据进行拆分单元格。那么我的做法是,进行重组数组,将一条数据根据图中红框拆分成两条数据;并将除去【商品信息】其他项进行合并单元格即可。最终效果如下图:

二、上代码逻辑

上图为原数组,首先需要将这两个数组根据 $data[6] 重组为五个数组。

$newlist = [];

foreach ($list as $k => $v) {

if (is_array($v[6])) {

$temp = $v;

$tempSix = $v[6];

$temp[6] = '';

foreach ($tempSix as $kk => $vv) {

$temp[6] = $vv;

$newlist[] = $temp;

}

}

}

效果及思路如图所示:

至此只完成了1/2,会导出五条数据,而实质上我们是要两条数据,只是【商品信息】这一项有多个单元格。

接下来我们进行完结。

首先我们需要知道 PHPExcel 合并单元格需要两个参数,起始和结束的单元格坐标,那么我们接下来重点就在处理这一块。思维精华如下代码,更多靠意会。。。

//获取$data[6]数量

foreach ($oldList as $k => $v) {

$countArr[] = count($v[6]);

}

if ($countArr) {

$numArr = [];

$start = 4;//文档前三行是标题 所以start为4

foreach ($countArr as $k => $v) {

$end = ($start + $v) - 1;

$numArr[] = [

'start' => $start,//起始数

'end' => $end,//结束数

];

$start = $end + 1;

}

}

$overcellkey = [];

foreach ($cellkey as $k => $v) {

unset($cellkey[6]);//删除不需要合并单元格的字母

}

//遍历字母

foreach ($cellkey as $k => $v) {

foreach ($numArr as $kk => $vv) {

//拼接坐标

$overcellkey[] = [

'start' => $v . $vv['start'],//合并开始坐标

'end' => $v . $vv['end'],//合并结束坐标

];

}

}

if ($overcellkey) {

foreach ($overcellkey as $k=>$v){

//进行上下单元格合并。

$sheet->mergeCells($v['start'] . ':' . $v['end']);

}

}

收工效果:

Finally,谢谢大家的阅读!祝每天开心~

版权声明:本文为博主原创文章,未经博主允许不得转载。

赞赏

微信赞赏支付宝赞赏

phpexcel导出大量数据合并单元格_PHPExcel处理一个单元格内多条数据拆分成多个单元格多条数据...相关推荐

  1. excel同一个单元格内多行数据拆分成多个单元格多行排列

    excel同一个单元格内多行数据拆分成多个单元格多行排列 1.全选表格 2.工具栏选择数据 ->来自表格/区域 3.选择要拆分的列,并点击拆分列 4.上载 1.全选表格 2.工具栏选择数据 -& ...

  2. html拆分单元格成两列,在excel中怎样把一个单元格拆分成两个单元格

    excel表格中如何拆分带括号的单元格比如说我有一个表格单元格内容是 :张三李四(000001) 如何将括号内的选中需要拆分的单元格,Ctrl +F把单元格里面的括号或者书名号换成逗号,然后在数据选项 ...

  3. 单元格内多个姓名拆分成一列_一个单元格的内容如何拆分成多个单元格

    一个单元格的内容拆分成多个单元格的方法:首先打开Excel,并选中需要拆分的那一列"B":然后点击菜单栏中的"数据":接着在找到"数据",并 ...

  4. 单元格内多个姓名拆分成一列_excel单元格拆分拆分同一单元格中的姓名,原来这么简单啊!...

    excel单元格拆分拆分同一单元格中的姓名,原来这么简单啊!,这个问题是我们很多人都很困惑的一个问题,excel单元格拆分是我们非常常用的一个东西,也是我们工作和学习中必不可少的一个数据公式,那么具体 ...

  5. mysql string agg_【转】SQL Server一个字段串拆分成多行显示或者多行数据合并成一个字符串(STRING_AGG、STRING_SPLIT)...

    目录 概述 STRING_AGG(合并):多行数据合并成一个字符串,以逗号隔开. STRING_SPLIT(拆分):一个字符串,拆分成多行. 一.多行数据合并成一个字符串 1.通过 FOR xml p ...

  6. PHPexcel导出_带合并单元格/边框背景/_有效果图_thinkphp

    ##供稿单位导出public function gonggao_excel(){$color='0xCC000000';//查询所有供稿单位$order='paixu asc,id desc';$wh ...

  7. excel里的一个单元格怎样拆分成几个单元格?

    你可以先选中那个单元格---数据--分列,  第一步,选择"分裂符号","下一步"--上面的选一种符号,如果是其它就点"其它",在后面填上你 ...

  8. excel按某个字符将一个单元格拆分成多个单元格

    整数据,一个单元格中全按分号分隔数据,网上有SUBSTITUTE()函数将原字符替换成CHAR(10)换行符,然后粘贴成文本再复制到原表格中.本文档按函数拆分,略过复制粘贴过程,仅能处理较少的数据,以 ...

  9. 单元格内多个姓名拆分成一列_excel将一列数据拆为多个表格-excel:如何将一个单元格拆分成多行或多列?...

    如何将一个Excel工作表的数据按一列的关键字拆分成... 工具/材料:Microsoft Office Excel2016版,Excel文档. 1.首先选中Excel文档,双击打开. 2.然后在该界 ...

最新文章

  1. 波士顿动力机器狗学会「撒尿」!拉风狗还不上街遛一遛?
  2. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元
  3. 潜藏在人体体内的12种毒素
  4. python编程(python开发的三种运行模式)
  5. Unity3D之UGUI基础3:Image图片
  6. LeetCode刷题——91. 解码方法
  7. CPU缓存侧信道攻击
  8. 小爱同学app安卓版_小爱同学app下载-小米小爱同学下载2.9.21安卓版-西西软件下载...
  9. Failed to resolve:问题的解决方法
  10. 关于数学计算机手抄报简单的,数学手抄报简单又漂亮图片
  11. 使用 requireJS 的shim参数 解决插件jequery 插件问题
  12. STM32之Bit-Banding
  13. 微信小程序实现手机号登录:报40029, 错误信息:code 无效,微信原始报文:{“errcode“:40029,“errmsg“:“invalid code
  14. 胜利学院计算机考试时间,胜利学院2019年3月全国计算机等级考试报名时间
  15. android activity 实际,如何整合Zxing条形码扫描器而不安装实际的zxing应用程序(无法解析符号:.android.CaptureActivity)?...
  16. 玩起 Centos 篇
  17. linux看内存插槽,Linux查看内存大小和插槽
  18. 我的第一篇CSDN博客文章
  19. javaweb:web.xml配置详解
  20. 企业级电商平台-前端搭建(有源码)

热门文章

  1. Microsoft Office 2016出现Excel文件打不开解决方法
  2. 图象关于y轴对称是什么意思_函数图象关于y轴对称是什么函数
  3. 计算机国二表情包,哈哈哈!设计师专用表情包合集(二)
  4. 谈瓦克生产基地爆炸停产对中国多晶硅市场的影响
  5. python版飞机大战及码源
  6. StoryBoard 创建tabBarController
  7. vs2013 应用程序无法正常启动
  8. 国外5个在网页设计最具影响力的人物
  9. 甘草干姜汤治疗肺虚寒
  10. 单位弹性需求曲线形状_需求曲线为直线时,在单位弹性点上总收益为最大。 - 问答库...