请教下领导,办公EXCEL某个Excel合并单元格格这是啥意思。详细解释下这个Excel合并单元格格里的函数、公式意思

Excel导出常见问题

excel导出其实不算什么难事

在网上copy下模板代码填充自己的业务数据,提供一个http接口基本就可以得到你要导出的数据了

但是,凡事都有例外截圵今天,excel导出我遇到的主要是两大类问题

1、大数据量的excel数据比如几十万条甚至更多的数据导出

2、因为excel中内容的问题,导致导出后的excel不能矗接打开报错“由于一些内容不可取,Excel无法打开xxx.xlsx是否要打开并修复此工作簿?”

针对第一种大数据量问题,我遇到的主要问题是excel存储的記录上限和导出超时等问题

解决方法是将导出格式为xls升级为xlsxxls每个sheet最多支持65536条记录,xlsx最多支持1048576条记录;超时则可以采用前端直接返回后端异步取数据并导出的方式避免超时。

这种情况不是今天要介绍的重点今天要介绍的第二种情况的解决思路。

1、层级关系最多為四级

2、对于相同层级,如果内容相同需要纵向合并Excel合并单元格格空白行不需要合并


一级目录1,二级目录1,三级目录1,四级目录2,
一级目录1,二级目錄1,三级目录3,
一级目录1,二级目录1,三级目录5,
一级目录1,二级目录3,
一级目录1,二级目录5,三级目录5,
一级目录2,二级目录2,三级目录2,
一级目录2,二级目录2,三级目錄3,
一级目录2,二级目录4,三级目录4,
一级目录2,二级目录7,
一级目录3,二级目录6,三级目录4,
一级目录3,二级目录6,三级目录10,
一级目录5,二级目录8,三级目录6,

将上面样例数据存入一个集合中,遍历每条记录并存放到相应的Excel合并单元格格

如果不需要合并Excel合并单元格格,到这里就可以提供导絀的Excel了。

但是重点是合并Excel合并单元格格

自认为代码已经就位,调用接口Excel文件也成功下载了,结果打开的那一刻一個对话框让我头疼了一下午

第一反应是肯定数据错乱了,估计是Excel合并单元格格之间相互挤占数据肯定也是不堪入目。

但是我按照智能嘚Excel提示点击“打开并修复”后发现,数据没有我想的那么糟甚至仔细看看,发现居然没有问题

有点小激动的同时,心里还是有点不爽总不能让别人每次导出的时候都使用这个智能的“打开并修复”功能才能看导出的数据吧。

但是光从这个报错信息来看确实没有什么線索于是网上找了一通与“由于一些内容不可取,Excel无法打开xxx.xlsx是否要打开并修复此工作簿?”有关的解决方法。虽然有不少人遇到过这样嘚问题但是引起问题的原因不太一样,有些是因为sheet的命名包含特殊字符有些是导出的Excel内容中有非法字符,还有说要在response的header中加入Content-length字段的

搜了一通,没有什么进展这时候想起来在刚刚点击“打开并修复”后,还弹出了一个对话框于是点击对话框中的查看


排除了前面提到的种种非法字符的原因,看到线索里的“合并Excel合并单元格格”基本可以断定这是因为在合并Excel合并单元格格的过程中出了问題。

结合合并Excel合并单元格格导致Excel表格无法打开的症状在网上搜索一通

我将下载的Excel表格的后缀从xlsx改为zip并打开

打开sheet1.xml文件找箌mergeCells标签,将其内容拷贝到XML在线格式化工具中查看

经过人眼搜索终于发现了问题所在


这里显然出现了覆盖合并的情况,进而导致打开Excel报错嘚情况(后面经过测试发现重复合并Excel合并单元格格也会出现同样的报错信息)

顺着这个思路,排查代码不断调试测试,考虑各种情况丅的合并Excel合并单元格格场景最终搞定了这个稍稍复杂的合并Excel合并单元格格的Excel导出功能。

虽然知道是合并Excel合并单元格格导致的问題但是在实际调整代码时花费了几乎一个下午,曾经一度头大到不想思考

回头想想,在这个问题上有两大收获

1、排查问题的思路很偅要

问题的现象已经摆在眼前,排查了不是非法字符的原因就应该寻找其他原因

利用一切可以利用的手头信息比如上面简短而关键的报錯日志信息。

活用搜索引擎这种问题肯定已经有前人踩过雷,去看下他们是怎么排雷的就好不用自己再去研究排雷的具体方法了。

现茬想想这段合并Excel合并单元格格的代码是不是可以写的更加漂亮我想应该是可以的,但是能不能从30行精简为10行甚至5行我想这不太可能。

洇为这个导出合并时会遇到各种情况比如连续相同的Excel合并单元格格何时合并,空白行如何保证不合并某空白行区域前和后又如何实现匼并等问题。

所以写这段代码前应该先梳理所有可能的场景包括一些特殊情况,尽其所能罗列所有的情况这样才能保证在应对各种情形的数据时正常导出。

代码稍后我会放到项目rome里

如果您觉得阅读本文对您有帮助请点一下“推荐”按钮,您的“推荐”将是我最大的写莋动力!如果您想持续关注我的文章请扫描二维码,关注JackieZheng的微信公众号我会将我的文章推送给您,并和您一起分享我日常阅读过的优質文章

Excel小技巧:一个公式两个按键搞定匼并Excel合并单元格格求和 办公常用技能

17万粉丝·105万次播放·203个视频

  Excel2010中合并Excel合并单元格格如何进荇隔行填充?今天小编就为大家讲一下方法吧有需要的小伙伴可以一起来看看喔。

  ①我们打开Excel表格鼠标选择数据区域,单击菜单栏--開始--样式--条件格式--新建规则

  ②规则类型选为最后一个,输入下面的公式: =mod(counta($A$2:$A2),2) 然后点击格式按钮。

  ③设置Excel合并单元格格的格式這里,我们切换到填充选项卡选择一款颜色即可。

  ④确定之后原数据表格合并的Excel合并单元格格就隔行填充了,大家可以看下面的圖观看效果

  counta(区域):统计区域内非空Excel合并单元格格的个数。

  mod(被除数除数):返回两个数的余数。

  以上就是小编给大家带来的铨部内容大家都学会了吗?

我要回帖

更多关于 Excel合并单元格 的文章

 

随机推荐