最近看园里有几篇写有关导出导入excel的博客,我正好最近在项目中也有涉及想来一起分享一下,正好整理一下自己的思路。
一、异步的方式是通过iframe来实现,代码如下:
if ($('#downloadexcel').length <= 0) $('body').append("<iframe id=\"downloadexcel\" style=\"display:none\"></iframe>"); $('#downloadexcel').attr('src', url);
二、生成excel文件用的第三方组件NPOI,具体如何用园子里有很多关于这方面的资料,这里就不展开了。
三、这里主要介绍一下如何简化HttpResponse到前端生成excel,下面会贴出核心代码,希望给大家有所帮助。
- 声明一个excel返回实体,代码如下:
View Code
/// <summary> /// 表示返回的流数据。 /// </summary> [DataContract] public class ExcelResultMessage { #region [ Privates ] private MessageType type = MessageType.Info; private string description = string.Empty; #endregion #region [ Properteis ] /// <summary> /// 返回结果信息提示类型。 /// </summary> [DataMember(Order=1)] public MessageType Type { get { return this.type; } set { this.type = value; } } /// <summary> /// 返回结果信息提示。 /// </summary> [DataMember(Order=2)] public string Description { get { return this.description; } set { this.description = value; } } /// <summary> /// 返回结果数据。 /// </summary> [DataMember(Order=3)] public MemoryStream Data { get; set; } /// <summary> /// 文件名 /// </summary> [DataMember(Order = 4)] public string FileName { get; set; } #endregion }