(已解决) 把 Excel 格式化模板以工作表方式添加
大佬们,下午好!
我有一个名为 "检查记录" 的 Excel 文件,该文件中包含两个工作表,一个叫 "基础数据",一个叫 "模板"。模板工作表是经过格式化的,设置了一些固定的样式,如下所示:
上述模板中 A5 到 A18 行也是固定的行数,也就是说,模板就是一个总共 20 行的样式。
基础数据工作表就是数据源,部分数据截图如下:
需求就是,根据基础数据中 B 列所在的管线号分组,按照模板填入相应的内容,模板中第 2 行第 3 行对应的项目在基础数据中找不到的可以不填。填好内容后,要用模板格式以工作表的形式添加到同一个工作簿中(此例中的工作簿就是检查记录工作簿),工作表名称用分组的管线号命名。特别地,如果基础数据表中黄色表头对应的数据行数超过了模板中的 A5 至 A18 区域,就要重新写一个工作表添加,并命名为 "对应的管线号 -1",“对应的管线号 -2”…,以此类推。
我自己尝试了一下,发现以我目前所掌握的 spl 对 excel 的操作,似乎只能把模板对象用 xlswrite 的方式保存为另一个工作簿,并不能把 xlsopen 对象以工作表的形式添加。所以,有以下困惑:
1、如何以工作表的形式添加带格式的表?常规的添加都是没有格式的序表或者游标;
2、xlswrite 保存的是整个 xlsopen 工作簿对象,可否只保存 xo 对象中的某个工作表;
恳请大佬们得闲时给予帮助指导。文中涉及的文件一并附上,可以放心执行 VBA 按钮 (没有病毒) 查看结果:
大佬们,请问这个问题可以用 spl 实现文中所说的结果吗?用 VBA 代码有点小复杂。
眼瞅着明天就是周末,麻烦方便的时候回复一下,我也省得惦记。🙏
谢谢!
现有的 SPL 的 excel 函数,不能支持这个需求。
近期准备增加一个 xlsmove 函数,用于实现类似 excel 的“移动或复制工作表”功能。
这样可以复制模板到以管线号命名的新工作表(例如 F1-LS1-101),然后将数据填写到其中。
感谢大佬回复🙏
情况已知悉,静候佳音。
我是个急性子,容易惦记事情。但绝没有催促的意思,望大佬见谅!
今日冬至,顺祝安康🙏 🙏
Peace!!
程序中已增加函数 xo.xlsmove(s,s’;xo’),可实现如下功能:将 xo 中名为 s 的 sheet 移动到 xo’,命名为 s’;xo’省略,表示 sheet 改名,s’也省略表示删除;xo’未省略,s’省略表示用 s 的原名。并且可使用 @c 选项执行复制 。
请前往下载贴中下载最新的 jar 文件。
感谢 ddszm 大佬!感谢 WuNan 大佬!感谢老贼!感谢 SPL!
Wish YOU a roaring business!!!
xlsmove works like a charm…👍 👍 👍 ,much appreciated!🙏 🙏 🙏