关于 xlscell() 的一点想法
需求背景:有 30 个 excel 表格中的数据要汇总到一个表中,这些表格式一致,都有标题,表头,做得挺花哨的。我只要其中 A3:B21 这一小块区域的数据,行名相同,顺序不同,数量也不同。提取出来后,横向合并成一个表就行。
处理思路:把 A3:B21 的内容用 xlscell()全读出来处理成为序表,删掉 NULL 的记录,再用 jion() 合并。
因为我用的其他软件,读取一个区域内容的时候,结果都是一个“表”,可能叫法不一样。我也理所当然认为 xlscell()也能。经过一番文档学习,发现它功能挺多的,但不能直接得到序表。最后用 xlscell@wp() 和 join@fp()处理得到了序表。
疑惑和想法:xlscell() 读完区域的数据后能得到那么多形式的数据,为什么不能直接给个序表呢?如果直接给,性能对比会怎么样呢?比如再加点 @t 参数,第一行当个列字段,会不会更方便。
以上仅是自己一点不成熟的想法,还请各位大佬不吝赐教,谢谢
试试 E(xlscell@w())
这个倒无关性能,xlscell 是理解成格子片区,没有设计序表相关的能力。选项有点多,增加序表能力也要全穷举一遍是不是会出乱子(不是所有选项都会是规整的,要考虑这些选项组合的情况,还要写入的情况该如何处理)。规整的格子转成序表也不太麻烦,就先算了。
感谢指点,E() 函数挺方便。
你这个不用 join@fp 去横向拼接。即使你要按左边对齐取数,也可以不用 join,反正也不用聚合。
可以尝试把获取到的两列 E@p()转置后变成一个只有一行的序表,30 个序表按字段对齐 json@t(json([ 序表,…].conj())),再转置回来。
谢谢指点