1、&=DataSource.Field,&=[DataSource].[Field]是对DataTable和几何类型的引用,将会从当前行开始竖直向下生成多行数据。
2、&=$data:是对变量或数组的引用。数组存在skip,horizontal等属性,具体参见官方网站
3、&=&=动态公式计算;{r}当前行,{c}当前列,{-n},{n}当前行或列的偏移量前n或后n。
4、&==是动态计算,如excel,if等语句。(if(logic_test,true_value,false_value))
前端extjs代码
///导出Excel function Export() { opt = ‘Export‘; 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: ‘Renewal.aspx‘, method: ‘POST‘, form: Ext.fly(‘frmDummy‘), isUpload: true, params: { ‘Opt‘: opt, file: ‘FileName‘, name: escape(‘墓地到期续费价格单‘)}//file为excel模板的文件名,name为导出后的excel文件名 }); }
客户端代码:
/// <summary> /// 导出Excel /// </summary> public void Export() { string file = Request.Form["file"]; string name = Server.UrlDecode(Request.Form["name"].ToString()); string SQL_EXPORT = @"SELECT * FROM FYB_MDDQXF"; //导出的数据源 DataSet ds = DBhelper.Query(SQL_EXPORT); WorkbookDesigner designer = new WorkbookDesigner(); //Excel模版路径 string path = MapPath("Excel/" + file + ".xls"); designer.Open(path); //将数据源加载到文件 designer.SetDataSource(ds); designer.Process(); //使服务器能够收集有关在客户端运行的浏览器功能的信息 HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser; string filename = ""; //判断当前浏览器是否为IE if (bc.Browser == "IE") filename = HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8) + ".xls"; else filename = name + ".xls"; //将Excel文件保存 designer.Save(filename, SaveType.OpenInExcel, FileFormatType.Default, this.Response); Response.Flush(); Response.Close(); designer = null; Response.End(); }
接下来是Excel模版的设置了
打开FileName.xls文件,将模版设置城如下格式
刚开始我也琢磨了下,后来才发现模版需要这样设置