使用Aspose.Cells利用模板导出Excel(C#)
2017-10-26 15:05
911 查看
前言
随着互联网的流行,web项目逐渐占据主流。我相信大部分人开发项目的过程中都写过上传以及导出Excel和Word的功能,本文仅讨论导出Excel。
传统的使用Microsoft.Office.Interop 或者 Microsoft.ACE.OLEDB 都具有一些使用限制:
- 需要在服务器端装Excel或者Microsoft.ACE.OLEDB,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。
- Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123。
- Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似1.42702E+17格式,日期列变成包含日期和数字的。
- 导出时,如果字段内容以“-”或“=”开头,Excel会把它当成公式进行,会报错。
C#中有很多第三方组件支持导出Excel,比如:NPOI、Aspose.Cells以及Spire.xls等等。它们能克服Microsoft.Office.Interop 或者 Microsoft.ACE.OLEDB的这些缺点。这里我们使用Aspose.Cells,同时使用已经写好的模板。
一、准备数据库
我创建了一个非常简单的表格,添加了一些数据。结构如图所示:
二、创建Excel模板
新建一个excel文件,第一行为标题,第二行添加内容。第二行格式为:&=[数据源表格名称].列名称。其中“数据源表格名称”为后台返回DataTable的名称,“列名称”为对应的标题列在数据库中的名称。具体如下:
三、后台写导出Excel的方法
具体代码如下:
然后在控制器中写个方法,调用ExportExcel。这个方法供前台js调用。
四、视图中调用
使用js调用控制器中的方法,要注意不能使用ajax。只能使用window.location.href。
五、实现效果
点击页面上的“导出”按钮,会弹出文件保存对话框。效果如下:
打开Excel,看看里面的内容:
数据库表中的数据,都填充在了Excel中。实现了我们想要的效果。
六、结语
本次分享到此结束。如果这篇文章对你有帮助的话,评论或推荐下吧!
项目源码:https://github.com/liuyang-1990/ExportDemo
作者:NaYoung
出处:http://www.cnblogs.com/liuyoung/p/7736811.html
欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言
相关文章推荐
- WinForm使用Aspose.cells利用模板导出Excel
- Asp.net开发经验-利用Aspose.Words按模板导出Word(注:Excel可以使用Aspose.Excel)
- C# winform 导出导入Excel/Doc 完整实例教程 使用Aspose.Cells.dll——第一篇
- C# 使用 C# Aspose.Cells导出多个Sheet的Excel .net导出Excel C#导出Excel
- C#使用Aspose.Cells导出Excel简单实现
- C# winform 导出导入Excel/Doc 完整实例教程 使用Aspose.Cells.dll——第三篇
- c#使用aspose.cells 从datatable导出数据到excel
- c#使用aspose.cells 从datatable导出数据到excel
- 利用Aspose.Cells和Excel模板导出复杂的统计数据
- (C#)利用Aspose.Cells组件导入导出excel文件
- c#使用aspose.cells 从datatable导出数据到excel
- (C#)利用Aspose.Cells组件导入导出excel文件
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
- aspose.cells使用excel模板生成excel
- 利用Aspose.Cells 组件导出数据到excel
- aspose.cells根据模板导出excel
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
- Aspose.Cells 根据Excel模板导出数据统计
- C# WinForm使用Aspose.Cells.dll 导出导入Excel/Doc 完整实例教程
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]