当前位置: 首页 > 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");

http://www.lryc.cn/news/577191.html

相关文章:

  • Java设计模式之结构型模式(外观模式)介绍与说明
  • BUUCTF在线评测-练习场-WebCTF习题[MRCTF2020]你传你[特殊字符]呢1-flag获取、解析
  • FPGA实现CameraLink视频解码转SDI输出,基于LVDS+GTX架构,提供2套工程源码和技术支持
  • AWS 开源 Strands Agents SDK,简化 AI 代理开发流程
  • python:运行时报错 No module named flask
  • CAU数据挖掘 支持向量机
  • Instruct-GPT奖励模型的损失函数与反向传播机制解析
  • Linux 系统管理:高效运维与性能优化
  • C语言之文件操作详解(文件打开关闭、顺序/随机读写)
  • 本地部署OpenHands AI助手,自动化编程提升开发效率
  • 如何提升 iOS App 全链路体验?从启动到退出的优化调试流程
  • Objective-c把字符解析成字典
  • python包管理工具uv VS pip
  • 在Flutter中生成App Bundle并上架Google Play
  • camera调试:安卓添加xml注册
  • 二刷 苍穹外卖day09
  • 【硬核数学 · LLM篇】3.1 Transformer之心:自注意力机制的线性代数解构《从零构建机器学习、深度学习到LLM的数学认知》
  • 借助 Wisdom SSH,实现 Linux 用户组与权限的精细化智能管控
  • DataGrip测试连接时出现报错解决方案
  • 谷歌高调宣布,Gemini 2.5 Pro正式版,绘制常见图表(折线图、柱状图、PPT等),国内直接使用
  • 将 h264+g711a存为 mp4文件,记录
  • uniapp+vue2 ba-tree-picker下拉项多选 树形层级选择器(支持单选、多选、父级选择、映射)
  • SAP月结问题9-FAGLL03H与损益表中研发费用金额不一致(FAGLL03H Bug)
  • 【数据结构中的位运算】
  • 堆排序实现及复杂度分析
  • AWS WebRTC:通过shell分析并发启动master后产生的日志文件
  • 腾讯云空间,高性能显卡云,安装xinference报错,pip install 空间不够用了
  • 大语言模型(LLM)笔记
  • JavaEE-MyBatis-Plus
  • datax-web报错:连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境)