码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何在Excel中实现三联类模板?


    本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

    前言

    在一些报表打印应用场景中,会有类似于如下图所示的排版格式:

    一般情况下将这种类型的需求称为“三联”类型,这种三联需求的关键点在于以下两点:

    1. 部分单元格需要同时绑定多个字段,并将其组合为一段文字,比如上图中的义务教育入学报道单和义务教育入学通知书下方的两段话,它们包含了日期信息和学校名称信息。

    2. 其中一联的部分内容的高度是可变的,比方说上图中,第二、三联中间的那一段话的长度是不确定的,因此它所占据的单元格行数也是不确定的。

    下面小编就将为分别为大家介绍如何实现上面两点需求:

    1. 同一个单元格绑定多个字段

    以上述应用场景为例,小编分别用黄s色和蓝色的背景色表示义务教育入学报道单和义务教育入学通知书下方的两段话,它们都绑定了多个字段。

    使用代码实现将数据对象绑定在一个单元格内:

    同时,使用自定义单元格来实现文本的拼接:

    完整代码可以点击这里:https://docs.grapecity.com.cn/spreadjs/practice/data-binding/cell-binding-object

    2. 改变第二、三联的单元格,并不影响第一联的内容。

    这里的思路不是插入新的行,而是将第三联下方的单元格向下移动,于是这里便需要做两件事,第一,记录需要向下移动的区域;第二,计算要向下移动几行。

    关于第一点,可以选中区域,并使用上方的按钮来设置需要向下移动的区域,将其记录在tag中:

    代码如下:

    而第二点,则稍微有点麻烦,因为真实的文本需要几行单元格展示,不仅和文字的长度有关,还与单元格的宽度(考虑到单元格是合并的,这里需要分开计算并相加)、字体的大小都有关系:

    计算文本长度时,使用canvas的measureText方法即可,需要将canvas的字体设置为和表单中一致,文本存在自定义单元格的实例中,直接获取即可:

    最后,使用计算出来的diff,扩大单元格合并的范围,并向下移动对应行数即可:

    这里要先移除合并单元格,再重新添加一次。

    至此,核心的功能就完成了。

    总结

    以上就是在Excel中实现横向排版/三联类的模板的方法介绍。如果您想了解完整代码,可以访问下列Gitee/Github地址:

    https://gitee.com/GrapeCity/typesetting_triple

    https://github.com/GrapeCityXA/typesetting_triple

    无论是初学者还是有经验的专业人士,都将为您提供有价值的指导和帮助。

    扩展链接:

    从表单驱动到模型驱动,解读低代码开发平台的发展趋势

    低代码开发平台是什么?

    基于分支的版本管理,帮助低代码从项目交付走向定制化产品开发

  • 相关阅读:
    jQuery 效果- 动画
    Vue 使用@别名
    [GO]、数组与切片
    shell脚本,获取所在目录的绝对路径,绝对路径
    R语言时间序列数据提取:使用xts包的last函数提取时间序列中最后面两周的数据(last 2 week)
    tomcat 的日志详解
    2023 年江西省职业院校技能大赛软件测试(高职组)赛项样题
    12.判断一个数据类型是否为数组
    【Java开发】 Spring 06 :Spring MVC 实践详解(Spring Boot+MyBatis-Plus+JSP 项目)
    Spring Boot对接RocketMQ示例
  • 原文地址:https://www.cnblogs.com/powertoolsteam/p/17771581.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号