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文件,将模版设置城如下格式
刚开始我也琢磨了下,后来才发现模版需要这样设置