利用Aspose.Cells和Excel模板导出复杂的统计数据

easyexcel复杂模板导出(合并行列,列统计汇总) easyexcel复杂模板导出 阅读详情

在项目中要进行导出Excel报表给客户,里面有统计,就心思用Aspose.Cells 配合实体类数据直接导出。结果呢比较麻烦。然后就检索找到利用Excel模板配合实体类数据导出。

总的来说一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来实现;一种是构造HTML格式的Excle报表;一种是基于控件的方式来处理,基于控件有很多种方式,个人认为比较有名的是Aspose.Cell和NPOI,下面用到的是Aspose.Cell

效果图:

Excel模板及相关变量

报表1模板如下所示(其中通过引用集合的对象是通过&=来引用,对象的属性或者列名,通过如&=Export.作业完成计划方式引用,非常直观方便)

Aspose.Cell控件支持多种参数变量的绑定操作,如支持DataSet、Datatable、IList集合,实体类集合、类对象等。

OverLoaded MethodDescription
[public void SetDataSource ( DataTable dataTable )]Sets data source of a DataTable object.
[public void SetDataSource ( String dataSourceName, DataView dataView )]Sets data source of a DataView object and binds it to a data source name.
[public void SetDataSource ( DataView dataView )]Sets data source of a DataView object.
[public void SetDataSource ( String name, IDataReader dataReader, Int32 rowCount )]Sets data source of a IDataReader object.
[public void SetDataSource ( String variable, Object data )]Sets data binding to a variable.
[public void SetDataSource ( String variable, Object\[\] dataArray )]Sets data array binding to a variable.
[public void SetDataSource ( OleDbConnection connection )]Sets data source of a OleDbConnection object.
[public void SetDataSource ( SqlConnection connection )]Sets data source of a SqlConnection object.

参考:http://docs.aspose.com:8082/docs/display/cellsnet/Aspose.Cells.WorkbookDesigner+Class

下面我主要用List 实体类集合

	protected void ExportExcel_ServerClick(object sender, EventArgs e)
		{
			 HttpCookie getCookies = Request.Cookies["UserLogin"];
			 if (getCookies != null)
			 {
				  string[] strParm = hfExcelData.Value.Split(',');
				  List<jianpinorzhen_view> getJianPinOrZhenData = SearchExportData.LstSearchExportJianPinOrZhen
(Server.UrlDecode(getCookies["SqlConString"]), getCookies["CustomCode"],getCookies["CustomType"],
 strParm[0], strParm[1], strParm[2], strParm[3], strParm[4]);
				  //创建一个workbookdesigner对象
				  WorkbookDesigner designer = new WorkbookDesigner();

				  //制定报表模板
				  switch (strParm[4])
				  {
					   case "工厂入货箱单信息":
							  designer.Open(Server.MapPath(@"model\AllWarehousing.xls"));
							break;
					   case "上货开箱信息":
							designer.Open(Server.MapPath(@"model\Warehousing.xls"));
							break;
					   case "检品之后信息":
							designer.Open(Server.MapPath(@"model\Dress_Jp.xls"));
							break;
					   case "检针之后信息":
							designer.Open(Server.MapPath(@"model\Dress_Jz.xls"));
							break;
					   default:
							break;
				  }

				  //设置实体类对象<span style="color:#FF0000;">这里设置了Export 变量,然后在模板里面我们就用了。
				  designer.SetDataSource("Export", getJianPinOrZhenData);
 //报表标题头部 //可以扩展多个
designer.SetDataSource("ExportUtils",strParm[4]);   
//报表截止日期   
designer.SetDataSource("ExportDate", DateTime.Now.ToString("yyyy年MM月dd日"));
//根据数据源处理生成报表内容
 designer.Process(); 
//客户端保存的文件名//如果保存的文件名是汉字的话一定要编码,否则就是乱码 HttpUtility.UrlEncode(strParm[4])
string fileName = HttpUtility.UrlEncode(strParm[4]) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; 
designer.Save(fileName, SaveType.OpenInExcel, FileFormatType.Excel2003, Response); 
Response.Flush(); 
Response.Close();
designer = null;
Response.End(); }}

    
    DataTable 读取数据
    

    DataTable dt = ExcuteDataTable(querySql);
                
                dt.TableName = "Export";
                if (dt.Rows.Count == 0)
                    return;
                WorkbookDesigner designer = new WorkbookDesigner();
    string fileName = HttpUtility.UrlEncode(strParm[4]) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                designer.Open(fileName<code class="csharp spaces"></code>);
    //设置DataTable对象
    designer.SetDataSource("Export",dt); 
    //设置DataSet对象
    designer.SetDataSource(ds.Tables["Export"]);
    designer.Process();

    
    

    
    
    
    更多信息访问官方网站:http://www.aspose.com/docs/display/cellsnet/Home

    aspose.cells 带模板导出excel 模板格式:   #region 带模板带出excel public HttpResponseMessage ExportExcelModel(dynamic obj) { int num = 0; long formId = obj.id; string selectedModel = o... 阅读详情

    相关推荐

    WinForm使用Aspose.cells利用模板导出Excel

    Aspose是一个处理文件格式的组件,可对Words、Excel等工具进行操作,实现代码数据导出。在这里我介绍以及提供Aspose对Excel(Aspose.Cells)导出的工具类。 1.首先介绍Aspose.Cells的基础知识: A.Excel模板变量的定义(详细可在官网查看详细:http://www.aspose.com/docs/display/cellsnet/Using+Smar...

    非洲的企鹅 8061

    使用Aspose.Cell控件实现Excel高难度报表的生成(二)

    继续在上篇《使用Aspose.Cell控件实现Excel高难度报表的生成(一)》随笔基础上,研究探讨基于模板的Aspose.cell报表实现,其中提到了下面两种报表的界面,如下所示: 或者这样的报表格式  首先来分析第一种报表,这个其实还是比较固定的二维表,我们只要绑定相关的信息即可,设计模板如下所示: 实际生成的报表如下所示: 实现的代码其实不复杂,如下所示:         private D...

    weixin_34280237的博客 279

    aspose.cells根据设定模板导出

    aspose.cells用过的朋友,相信都能够感受到其强大之处。这个DEMO里面是根据固定模板导出相应格式,用到了复制样式的函数,同样,有不足之处,比如合并单元格后复制过去不能够很好的体现。

    Aspose.Cells

    适用于 Excel® 文件格式的 .NET API 产品页面|文档|演示|API 参考|示例|博客|搜索|免费支持|临时牌照 Aspose.Cells for .NET是一个 Excel® 电子表格编程 API,用于加速电子表格管理和处理任务。Excel® .NE​​T API 支持构建具有生成、修改、转换、呈现和打印电子表格能力的跨平台应用程序。它允许开发人员管理工作表、行、列和单元格,从头开始创建电子表格内容和样式,将来自不同数据源的数据导入工作表,添加常见和复杂的数学、财务和...

    zhangxin988的博客 302

    aspose.cellsC#按模版导出Excel实例

    C#根据模版导出数据到Excel

    利用Aspose.Cells和Excel模板导出统计数据

    主要为大家详细介绍了利用Aspose.Cells和Excel模板导出复杂的统计数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Csharp: Create Excel Workbook or word from Template File using aspose.Word 14.5 and aspose.Cell 8.1

    winform: /// /// /// /// /// private void btnGenWord_Click(object sender, EventArgs e) { Dictionary dictSource = new Dictiona

    涂聚文的专栏 1107

    Aspose.Cells组件导出excel文件

    主要介绍了利用Aspose.Cells组件导出excel文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    easyExcel 多工作表多列表导出

    1、创建maven工程,引用 <!--easyExcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.0.5</version> </dependency> 2、创建模板 3、代码实现 package com.meng.example.ea

    menghunzhihun的博客 2280

    tcl脚本语言之file的常见用法

    这些命令覆盖了从文件属性获取、修改、复制、删除、路径处理等广泛的文件操作需求。命令用于处理文件系统操作。

    hzmscut的博客 5152

    dpdk 源码分析 rte_ring

    rte_ring源码分析

    qq_40843445的博客 929

    aspose.cells 导出 html中的表格,利用Aspose.Cells和Excel模板导出复杂的统计数据

    在项目中要进行导出Excel报表给客户,里面有统计,就心思用Aspose.Cells 配合实体类数据直接导出。结果呢比较麻烦。然后就检索找到利用Excel模板配合实体类数据导出。总的来说一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来实现;一种是构造HTML格式的Excle报表;一种是基于控件的方式来处理,基于控件有很多种方式,个人认为比较有名的是Aspose.Cel...

    weixin_39622332的博客 375

    宽带阻抗匹配的工程实现-第一步,端口驻波仿真

    其实阻抗匹配我工作以来经常说,也经常做,但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来,才发现很多东西嘴上说容易,想做出来太难了。所以准备写一些文章,记录一下碰到的问题。

    pp_0604的博客 2378

    使用Aspose.Cell控件实现Excel高难度报表的生成(三)

    在之前几篇文章中,介绍了关于Apsose.cell这个强大的Excel操作控件的使用,相关文章如下: 使用Aspose.Cell控件实现Excel高难度报表的生成(一) 使用Aspose.Cell控件实现Excel高难度报表的生成(二) 使用Aspose.Cell控件实现多个Excel文件的合并 这几篇文章,都对Apose.Cell这个控件生成各种Excel的方式进行了阐述,对直接把Dat...

    weixin_34050005的博客 315

    Tessent实战:网表扫描链插入全流程解析

    本文详细解析了使用Tessent工具为网表插入扫描链(Scan Chain)的全流程。从前期环境配置、网表检查,到扫描链数量、时钟域等核心配置,再到执行扫描单元替换与连接,最后进行结果验证与文件输出。文章提供了关键命令与实用技巧,帮助工程师高效完成DFT设计,确保芯片可测试性。

    hhh00的博客 747

    Geant4 案例分析(一): B1

    本文是对Geant4 B1的案例分析,其中特定的功能不做介绍,而注重于各个文件的主要功能,以及它们组织的方式。

    m0_51809467的博客 1583

    Aspose.Cells Smart markers 基于模板导出Excel

    Aspose.Cells可以预先定义Excel模板,然后填充数据(官方文档:http://www.aspose.com/docs/display/cellsjava/Smart+Markers)。   设置的模板是一个标准的Excel文件,包含了可视化的格式,公式,以及标记(smart markers),并且可以引用多个数据源。 支持的标记(Smart Marker Options) &a...

    weixin_34081595的博客 394

    在Wincc8.0的Wincc 3D Control控件中使用3D模型

    如果之前没有在Blender中自定义光照,EnableBackground属性选择“是”,Wincc 3D Control会按一个均匀的光照强度渲染。Wincc8.0更新后提供了一个Wincc 3D Control控件来显示3D图像,但是该控件实际体验下来现阶段还存在功能不足、运行不稳定的问题。再把导出的dae文件复制进Wincc项目的GraCS文件夹中,文件名称复制进控件的SceneFile属性里。选择编辑模式,全选模型,点击网格→分离→按材质,分离出不同的部件(不同的部件最好使用不同的材质)。

    ghoring的博客 7140

    使用模板导出excel、word

    package com.wkrj.core.utils; import cn.hutool.core.date.DateUtil; import com.aspose.cells.Workbook; import com.aspose.cells.WorkbookDesigner; import com.aspose.words.License; import org.springframework.core.io.ClassPathResource; import javax.servlet.http

    qq_38017930的博客 610

    基于Simulink的基于MPC的实时ZMP约束步态优化仿真

    本文完成了基于Simulink的MPC实时ZMP约束步态优化仿真,实现了:✅ 建立3D-LIPM预测模型✅ 设计带ZMP可行域约束的MPC优化器✅ 实现闭环实时求解与扰动抑制✅ 验证强鲁棒性与安全性✅ 为人形机器人野外行走、人机交互提供先进控制方案。

    xiaoheshang_123的博客 86

    32GB Jetson Orin SOM 不能刷机问题排查

    拿到了一个新的Orin SOM,当用orin Devkit CVB或定制的CVB不能用Linux_For_Tegra刷机,flash日志(JetPack5.0DP和5.0.1DP都失败了) 2. 确认mb2配置中将CVB的eeprom读取大小设置是否为0 ? 已经确认是正常的 在定制的orin cvb flash上使用Orin devkit som,启动是成功的。但新得到的Orin som并不工作可以排除理由:使用Orin Devkit CVB和Orin SOM(不是Devkit SOM)仍然不能

    jzwjzw19900922的博客 1499

    【C#】Aspose.Cellls 的基本使用方法使用

    public class AsposeCellsHelper { public static void ResponseCell(HttpResponseBase response, string saveFileName, Dictionary<string, object> datas, string templateFileName, string sheetName, Action<WorkbookDesigner, Dictionary<stri.

    u012949335的专栏 800

    霍尼韦尔SoftMaster使用说明

    霍尼韦尔SoftMaster使用说明

    Aspose.cells模板导出使用记录

    用Aspose.cells导出可以方便地将数据到Excel文档中,简单的直接将DataTable列表写入即可,复杂的格式一般会先做好模板,再将数据填充进去,这样可以保持设置好的样式,又能快速填充内容,十分方便。用于让 Aspose.Cells 知道在 Microsoft Excel 设计器电子表格中放置哪些信息。智能标记允许您创建仅包含特定信息和格式的模板。所有智能标记都以 &= 开头。&=Party.FullName 是数据标记的示例。

    apollokk的专栏 1973

    IMSL CNL 7.0.0 (x86-64)Crack

    IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

    STM32F407中文手册

    STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

    Aspose.cells常用的导入导出等操作

    改变单元格大小 ,样式。创建sheet工作簿。

    qq_40506952的博客 1750

    efm32 入门.pdf

    本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

    Aspose.cell中的Excel模板导出数据

    //Excel模板导数据(Eexcel中根据DataTable中的个数,给多个Sheet中的模板赋值) public void DataSetToManyExcel(string fileName, string fileUrl, Page page, DataSet my_ds, Dictionary<string, string> dict = null)...

    weixin_30834019的博客 513

    aspose java_Java按模板导出Excel———基于Aspose实现

    开发环境jdk 1.8Maven 3.6SpringBoot 2.1.4.RELEASEaspose-cells 8.5.2Idea或先看效果模板:导出后效果:引入jar包pom.xml如遇到jar无法下载的情况,可自行下载到本地,然后手动添加到项目中com.asposeaspose-cells8.5.2AsposeJavaAPIAspose Java APIhttp://repository.a...

    weixin_39801475的博客 688
    上一篇: Linq实现DaTaTable或者List里面数据值不重复
    下一篇: [免费参加] 2015微软社区大课堂Community Camp开放报名啦!
    蝶恋花雨
    博客等级 码龄21年 1290粉丝 147原创
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

    当前余额3.43元 前往充值 >
    需支付:10.00元
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付元
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值