Aspose.Cells可以预先定义Excel模板,然后填充数据(官方文档:http://www.aspose.com/docs/display/cellsjava/Smart+Markers)。

设置的模板是一个标准的Excel文件,包含了可视化的格式,公式,以及标记(smart markers),并且可以引用多个数据源。

支持的标记(Smart Marker Options)

&=DataSource.FieldName 数据元是ICellsDataTable或者是JavaBean
&=[Data Source].[Field Name] 数据源是 ResultSet
&=$VariableName  一个变量
&=$VariableArray 数组变量
&==DynamicFormula 暂时不清楚
&=&=RepeatDynamicFormula 动态计算

下面介绍这两种标记的使用方式

1、&=$VariableName  一个变量
2、&=$VariableArray 数组变量

Java代码

     String path = "SmartMarkerDesigner.xls";
InputStream inputStream = ClassLoader.getSystemResourceAsStream(path);
Workbook wb = new Workbook(inputStream);
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(wb);
designer.setDataSource("Variable", "Single Variable");
designer.setDataSource("MultiVariable", new String[]
{
"Variable 1", "Variable 2", "Variable 3"
});
designer.setDataSource("MultiVariable2", new String[]
{
"Skip 1", "Skip 2", "Skip 3"
});
designer.setDataSource("Array1Dim", new String[]
{
"A1", "A2", "A3"
});
designer.setDataSource("Array2Dim", new String[][]
{
{
"A11", "A12", "A13"
},
{
"A21", "A22", "A23", "A24"
},
{
"A31", "A32",
},
});

下面介绍JavaBean的使用方式

&=DataSource.FieldName 数据元是ICellsDataTable或者是JavaBean

&=Person.name(bean) 注意这个地方需要加上bean

其中&=&=C{r}*D{r} 是动态计算的标记

&=&= 构面跟一个表达式 r代表当前行,C{r}*D{r} 这样在循环的时候没一行都会计算。

上面的例子用id这列进行分组Grouping Data

normal - The group by field(s) value is not be repeated for the corresponding records in the column; instead they are printed once per data group.

分组的列不会被循环输出,只会输出一次。

merge - The same behavior as for the normal parameter, except that it merges the cells in the group by field(s) for each group set.

和normal一样,但是他会合并单元格

repeat - The group by field(s) value is repeated for the corresponding records.

分组的列会循环输出

&=subtotal9:Person.id 放在那一列下面是按照id进行分组统计。

或者&=Employee.money(subtotal9:Employee.id) 这么写也行,按照id进行分组统计

subtotalN (N的值可以是1-11 平均数 总行数 最大值 最小值 总和 等等。)

Performs a summary operation for a specified field data related to a group by field. The N represents numbers between 1 and 11 which specify the function used when calculating subtotals within a list of data. (1=AVERAGE, 2=COUNT, 3=COUNTA, 4=MAX, 5=MIN,...9=SUM etc.) Refer to the Subtotal reference in Microsoft Excel's help for further details.

The format actually states as:
subtotalN:Ref where Ref refers to the group by column.

&=Products.Units(subtotal9:Products.ProductID) specifies summary function upon Units field with respect to the ProductID field in the Products table.

&=Tabx.Col3(subtotal9:Tabx.Col1) specifies summary function upon the Col3 field group by Col1 in the table Tabx.

&=Table1.ColumnD(subtotal9:Table1.ColumnA&Table1.ColumnB) specifies summary function upon ColumnD field group by ColumnA and ColumnB in the table Table1.

Aspose.Cells Smart markers 基于模板导出Excel的更多相关文章

  1. aspose.cells根据模板导出excel

    又隔十多天没写博客了,最近都在忙项目的事情,公司人事变动也比较大,手头上就又多了一个项目.最近做用aspose.cells根据模板导出excel报价单的功能,顺便把相关的核心记下来,先上模板和导出的效 ...

  2. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  3. Java无模板导出Excel,Apache-POI插件实现

    开发环境 jdk 1.8 Maven 3.6 Tomcat 8.5 SpringBoot 2.1.4.RELEASE Apache-POI 3.6 Idea 注意: 我是在现有的基于SpringBoo ...

  4. poi根据excel模板导出Excel

    /****单元格值对象**/public class Cells { /*** * 行 */ private int row; /** * 列 */ private int column; /** * ...

  5. POI通过模板导出EXCEL文件

    一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...

  6. .Net NPOI 根据excel模板导出excel、直接生成excel

    一.根据Excel模板导出excel 1.导入NPOI.dll  2.DAL中添加类ExportExcel.cs using NPOI.SS.UserModel; using System; usin ...

  7. apache poi根据模板导出excel

    需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; im ...

  8. 按模板导出Excel

    说明:开发环境 vs2012 asp.net mvc4 c# 注意:Excel模板有多个sheet页,导出Excel的时候,同时给多个sheet页填充数据 1.项目结构 3.Excel模板(注意she ...

  9. NPOI复制模板导出Excel

    本人菜鸟实习生一枚,公司给我安排了一个excel导出功能.要求如下:1.导出excel文件有样式要求:2.导出excel包含一个或多个工作表:3.功能做活(我的理解就是excel样式以后可能会变方便维 ...

随机推荐

  1. Java NIO.2 —— 文件或目录删除操作

    文件删除 删除单个文件的操作很简单,如果要删除一个目录树的话,需要实现FileVisitor 接口然后递归地调用delete() 或deleteIfExists()方法.在看代码之前,需要注意一下问题 ...

  2. 如何给mysql用户分配权限

    1,Mysql下创建新的用户 语法: 1.create user 用户名 identified by '密码'; 例:create user xiaogang identified by '12345 ...

  3. css ::selection 的妙用

    1.选中页面文字和元素时的背景颜色 ::selection { background: #25b864; color: #fff; } 2.不能选择页面内容(但可以拖拽内容进行复制.挺好玩的) ::s ...

  4. 交叉验证(CrossValidation)方法思想简介[zz]

    以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train se ...

  5. Xtrabackup备份、还原、恢复Mysql操作大全

    环境:CentOS 6.7  + Mysql 5.7.19 + Xtraback 2.4.8 innobackupex常用参数: --user=USER 指定备份用户,不指定的话为当前系统用户 --p ...

  6. 三星 S4 手机误删除相片(相册)后的恢复问题,仅记录处理过程,其它Android手机同样适用

    无意中删除了三星S4手机中相机的相册.过程是这样的,用手机拍了几张照片,觉得最后那张拍得不好,想删除,于是进入相册,看到有那张照片的图标,选择,删除,悲剧发生了! 这里得说三星的不好:在相册中,相册文 ...

  7. Android:相机适配及图片处理的一些问题

    链接:http://www.cnblogs.com/liushilin/p/6387263.html 链接:http://www.cnblogs.com/liushilin/p/5956691.htm ...

  8. ios开发-引导页实现

    源码:http://files.cnblogs.com/ios8/%5Bcode4app.com%5DIntroductionTutorialView_10843.zip 可以看看demo,很简单,我 ...

  9. 使用Xilinx K7 KC705开发板调试PCIe中的问题【持续更新】

    开发板:Xilinx K7 KC705 软件:ISE14.7 1.由于应用需求,我们要将开发板作为主机端,通过PCIe接口转接板外接一个NVMe PCIe SSD.并由FPGA控制SSD的数据读写. ...

  10. Chrome浏览器查看 iframe信息 OpenFrame

    https://chrome.google.com/webstore/search/openframe?hl=zh-CN&_category=extensions 搜索 OpenFrame 添 ...