Aspose.cells模板导出使用记录

文章介绍了如何利用Aspose.Cells库将数据方便地导出到Excel文档中,可以通过简单的DataTable写入或预先制作模板然后填充数据以保持样式。智能标记允许创建包含特定信息和格式的模板,动态公式支持根据插入数据进行计算。文章还详细阐述了不同类型的智能标记、动态公式的使用方法以及如何设置数据源。
摘要由CSDN通过智能技术生成

简述

用Aspose.cells导出可以方便地将数据到Excel文档中,简单的直接将DataTable列表写入即可,复杂的格式一般会先做好模板,再将数据填充进去,这样可以保持设置好的样式,又能快速填充内容,十分方便。

智能标记

用于让 Aspose.Cells 知道在 Microsoft Excel 设计器电子表格中放置哪些信息。智能标记允许您创建仅包含特定信息和格式的模板。

所有智能标记都以 &= 开头。 &=Party.FullName 是数据标记的示例。如果数据标记产生多个项目,例如,一个完整的行,则随后的行会自动向下移动以为新信息腾出空间。因此,小计和总计可以放在数据标记之后的行上,以根据插入的数据进行计算。要对插入的行进行计算,请使用动态公式.

智能标记包括数据源字段名称大多数信息的部分。特殊信息也可以与变量和变量数组一起传递。变量始终只填充一个单元格,而变量数组可能填充多个单元格。每个细胞只使用一个数据标记。未使用的智能标记将被删除。

智能标记也可能包含参数。参数允许您修改信息的布局方式。它们作为逗号分隔列表附加到括号中的智能标记的末尾。

智能标记选项

&=数据源.字段名

&=[数据源].[字段名]

&=$变量名

&=$变量数组

&==动态公式

&=&=重复动态公式

动态公式

动态公式允许您将 Excel 公式插入到单元格中,即使公式引用了将在导出过程中插入的行。动态公式可以为每个插入的行重复或仅使用放置数据标记的单元格。

动态公式允许以下附加选项:

  • r - 当前行号。
  • 2, -1 - 当前行号的偏移量。

例如:
&=&=B{-1}/C{-1}~(skip:1)

在动态公式标记中,“-1”分别表示B列和C列到当前行的偏移量,将设置除法运算,skip参数为一行。此外,我们应该指定以下字符:
"~"

作为分隔符以在动态公式中应用更多参数。

以下屏幕截图说明了一个重复的动态公式和生成的 Excel 工作表。

模板文件输出文件

Cell “C1”包含公式A1*B1 ,单元格“C2”包含A2*B2单元格“C3”包含A3*B3.

详细介绍可以参考官方说明

模板设置

先按照普通excel文档进行框架设置,要变化的部分根据Aspose.cells的预设格式(SmartMakers)进行编写。

示例如下图:

对于普通的单个变量,格式为&=$前缀,后面跟上变量名即可。

对于列表变量,前缀为&=,后面填写变量名.字段名,例如:&=[bom].cInvName,表名、字段名如果有特殊字符则用[]包裹,如果没有则可以省略。

如果有主从表的,按表名+字段填入即可,例如上图中上半部分是主表的,也可以使用&=[master].field格式来设置,不用分开传多个变量。

基本代码框架

string dataDir = "";
// Instantiate the workbook from a template file that contains Smart Markers

Workbook designer = new Workbook(dataDir + "模板文件,修改成自己的.xlsx");


DataTable dt = new DataTable(); //修改为自己的数据源

// 设置表名,对应智能标记中的表名
dt.TableName = "Report";

// 创建设计器
WorkbookDesigner d = new WorkbookDesigner();

// 关联文档
d.Workbook = designer;

// 设置数据源
d.SetDataSource(dt);

// 执行合并
d.Process();

// S保存文档
designer.Save(dataDir + "output.xlsx", SaveFormat.Xlsx);

其中SetDataSource的重载共有9个,可以将普通数据、DataSet、DataTable、DataView、DataReader、List等设置为数据源。可根据情况选用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello World,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值