当前位置: 首页 > news >正文

Excel转pdf实现动态数据绑定

灵感来自于前端开发的插值语法:<span>Message: {{ msg }}</span>。使用Excel作为报表编辑器,实现pdf报表的输入和归档,是一个不错的主意。
定义一个Excel模板,绑定数据模型Model,在单元格中插入类似于这样的语法{{ m.Name }}。解析Excel的每个sheet,遍历单元格,求值后渲染到pdf上。
1. 实现了单元格合并的编排逻辑
2. 实现了绑定数据列表的语法,自动向下扩展
3. 使用JS语法实现数据绑定
4. 实现了插入图片
5. 实现了自动分页/手动分页
6. 实现了页眉和页脚
7. 实现了固定表头
8. 实现了多个sheet组合成一个pdf

下面的a.xlsx模板定义,后面是生成的pdf文件

using ExReport;XPage page = new XPage();
page.Model = new
{Desp = "测试升级",Result = "hello 这是一个Result字段",Logo= "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",ImageFile = "https://www.topsong.net/img/sign.png",Todos = new[] {new { Name="任务1",Desp="肝主疏泄,调节全身气机,影响情绪、消化、气血运行等。肝经通畅则情绪舒畅,气机调达。" },new { Name="任务2",Desp="肝主疏泄,调节全身气机,影响情绪、消化、气血运行等。肝经通畅则情绪舒畅,气机调达。" },new { Name="任务3",Desp="肝主疏泄,调节全身气机,影响情绪、消化、气血运行等。肝经通畅则情绪舒畅,气机调达。" },new { Name="任务4",Desp="肝经起于足大趾外侧(​​大敦穴​​),沿足背向上,经过内踝前,沿小腿内侧上行至膝内侧,再沿大腿内侧中线进入阴毛中,环绕生殖器,上达小腹,夹胃旁,属肝络胆,继续上行通过膈肌,分布于胁肋部,沿喉咙后方上行至鼻咽部,连接目系(眼与脑相连的组织),最后上达前额与督脉会于巅顶。" },new { Name="任务5",Desp="肝有贮藏和调节血液的功能,肝经与月经、筋脉活动密切相关。" },new { Name="任务6",Desp="肝经起于足大趾外侧(​​大敦穴​​),沿足背向上,经过内踝前,沿小腿内侧上行至膝内侧,再沿大腿内侧中线进入阴毛中,环绕生殖器,上达小腹,夹胃旁,属肝络胆,继续上行通过膈肌,分布于胁肋部,沿喉咙后方上行至鼻咽部,连接目系(眼与脑相连的组织),最后上达前额与督脉会于巅顶。" },new { Name="任务7",Desp="肝有贮藏和调节血液的功能,肝经与月经、筋脉活动密切相关。" },}
};
var pdf= await page.RenderPdf("a.xlsx");
pdf.Save("report.pdf");Console.WriteLine("ok");

参考:https://www.cnblogs.com/slmk/p/18956887

http://www.lqws.cn/news/589411.html

相关文章:

  • 「Java案例」计算矩形面积
  • Linux随记(十九)
  • python+uniapp基于微信小程序的食堂菜品查询系统
  • [springboot系列] 探秘JUnit 5: Java单元测试利器
  • Spring 依赖注入:官方推荐方式及最佳实践
  • hono+postgresql+CURD
  • YOLOv13:最新的YOLO目标检测算法
  • Windows11系统中安装docker并配置docker镜像到pycharm中
  • 文旅数字孪生交付生态链:集成-交付-运维“三位一体”,100+案例助力行业数字化转型
  • 腾讯云空间,高性能显卡云,安装xinference报错,pip install 空间不够用了
  • WOLA(Weighted Overlap-Add)方法详解
  • 实战避坑:MyBatis中${}拼接如何优雅又安全?
  • Python 数据分析与机器学习入门 (二):NumPy 核心教程,玩转多维数组
  • Redis 集群
  • SQLite 安装使用教程
  • 长短期记忆网络(LSTM):让神经网络拥有 “持久记忆力” 的神奇魔法
  • 反射,枚举和lambda表达式
  • Bessel位势方程求解步骤
  • 国产化替换中政务行业通用的解决方案是什么?需要注意的事项有哪些?
  • 链表题解——移除链表元素【LeetCode】
  • 基于DSP的边缘检测与图像锐化算法研究与实现
  • ACE之ACE_NonBlocking_Connect_Handler问题分析
  • Vue防抖节流
  • localStorage 和 sessionStorage
  • ViT与CLIP:图像×文本 多模态读心术揭秘
  • python开篇介绍
  • 人工智能参与高考作文写作的实证研究
  • 大根堆加小根堆查找中位数o(N)时间复杂度
  • I/O I/O基本概念与基本I/O函数 6.30
  • CppCon 2018 学习:An allocator is a handle to a heap Lessons learned from std::pmr