原創(chuàng)|其它|編輯:郝浩|2012-10-17 17:32:50.000|閱讀 821 次
概述:將數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出為Excel格式的表格想必是大家很常用的功能。那么在Extjs又該怎么鳥呢?先前在網(wǎng)上查的方案是用其自帶的com對(duì)象,浪費(fèi)了好幾天時(shí)間連生成一個(gè)excel模板都沒搞定,無奈放棄。繼而大牛推薦用Aspose.Cells,發(fā)現(xiàn)非常簡單而且效果也不錯(cuò)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
將數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出為Excel格式的表格想必是大家很常用的功能。那么在Extjs又該怎么鳥呢?先前在網(wǎng)上查的方案是用其自帶的com對(duì)象,浪費(fèi)了好幾天時(shí)間連生成一個(gè)excel模板都沒搞定,無奈放棄。繼而大牛推薦用Aspose.Cells,發(fā)現(xiàn)非常簡單而且效果也不錯(cuò)。
首先下載一個(gè)Aspose.Cells.dll文件并包含在項(xiàng)目中。
在Extjs中的導(dǎo)出函數(shù)如下
//執(zhí)行導(dǎo)出的操作 exportExcel: function () { if (!Ext.fly('frmDummy')) { var frm = document.createElement('form'); frm.id = 'frmDummy'; frm.name = id; frm.className = 'x-hidden'; document.body.appendChild(frm); } Ext.Ajax.request({ url: 'URL/Export.aspx', method: 'POST', form: Ext.fly('frmDummy'), isUpload: true, params: { file: 'UsersDesigner', name: escape('用戶') }//file為excel模板的文件名,name為導(dǎo)出后的excel文件名 }); }
后臺(tái)獲取數(shù)據(jù)在Export.cs示例代碼如下
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Reflection; using System.Drawing; using System.Data.SqlClient; using System.Text; using Aspose.Cells; public partial class URL_Export : System.Web.UI.Page { private string subtitle; protected void Page_Load(object sender, EventArgs e) { string file = Request.Form["file"]; string name = Server.UrlDecode(Request.Form["name"].ToString()); DataSet ds = ;//要導(dǎo)出的數(shù)據(jù)源 WorkbookDesigner designer = new WorkbookDesigner(); string path = MapPath("~/Designer/" + file + ".xls");//模版路徑 designer.Open(path); designer.SetDataSource(ds); designer.SetDataSource("subtitle", subtitle); designer.Process(); HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser; string filename = ""; if (bc.Browser == "IE") filename = HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8) + ".xls"; else filename = name + ".xls"; designer.Save(filename, SaveType.OpenInExcel, FileFormatType.Default, this.Response); } }
Exel模板:
自動(dòng)生成序號(hào)一列寫法為:&=&=IF($A{-1}="序號(hào)",1,($A{-1}+1))
列求和:&=&=sum(C4:C{-1})
生成的Excel:
需要注意的是,后臺(tái)生成的dataset名稱(Table)要與Excel模板中的一致。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:Suixufeng的專欄——CSDN