Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
来源:互联网 发布:神经网络 股票 知乎 编辑:程序博客网 时间:2024/06/02 11:25
Ext.net官网上有Excel导出的方法,在Version1.5和目前最新的Version2.0版本上都有该方法。但是都没有列头……下面介绍的方法也是在网上找的。
别问我为什么不放一个原著的URL。那个家伙自己也是转的,就这样转啊转。到我这我都不晓得那个是原作者了……关键它帮助了我,在这整理下,留个脚印。
代码:
public void ToExcel(GridPanel gp, string fileName, DataTable dt, HttpResponse resp) { resp.Clear(); resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); resp.ContentType = "application nd.ms-excel"; string colHeaders = "", ls_item = ""; int i = 0; int cl = gp.ColumnModel.Columns.Count; string columns = ""; //输出表头 取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符 for (i = 0; i < cl; i++) { if (i == (cl - 1))//最后一列,加n { if (!gp.ColumnModel.Columns[i].Hidden) { colHeaders += gp.ColumnModel.Columns[i].Header; columns += gp.ColumnModel.Columns[i].DataIndex + ","; } colHeaders += "\n"; } else { if (!gp.ColumnModel.Columns[i].Hidden && gp.ColumnModel.Columns[i].ColumnID != "update") { colHeaders += gp.ColumnModel.Columns[i].Header + "\t"; columns += gp.ColumnModel.Columns[i].DataIndex + ","; } } } resp.Write(colHeaders); if (columns != "") columns = columns.Substring(0, columns.LastIndexOf(",")); string[] columnall = columns.Split(','); cl = columnall.Length; //逐行处理数据 for (int j = 0; j < dt.Rows.Count; j++) { //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 for (i = 0; i < cl; i++) { if (i == (cl - 1)) { ls_item += EditString(dt.Rows[j][columnall[i].ToString()].ToString()) + "\n"; } else { ls_item += EditString(dt.Rows[j][columnall[i].ToString()].ToString()) + "\t"; } } resp.Write(ls_item); ls_item = ""; } Response.Flush(); resp.End(); } /// <summary> /// 处理字符问题 /// </summary> /// <param name="text1"></param> /// <returns></returns> private static string EditString(string text1) { if (text1.IndexOf('\r') != -1) { text1 = text1.Replace('\r', ' '); } if (text1.IndexOf('\n') != -1) { text1 = text1.Replace('\n', ' '); } if (text1.IndexOf('\t') != -1) { text1 = text1.Replace('\t', ' '); } if (text1.IndexOf("'") != -1) { text1 = text1.Replace("'", ""); } if (text1.IndexOf(@"""") != -1) { text1 = text1.Replace(@"""", ""); } return text1; }
导出按钮
/// <summary> /// 导出Excel /// </summary> protected void ToExcel(object sender, EventArgs e) { DataTable dtSource = _createPageManager.GetTrackBillData(mouldId, 2, "", 1, Cache); ToExcel(gpExec, "test", dtSource, Response); }
前台代码
<ext:Button ID="btnExportExcel" AutoPostBack="true" OnClick="ToExcel" runat="server" Text="导出Excel"> <Listeners> <Click Fn="saveData" /> </Listeners> </ext:Button>
注意: AutoPostBack="true" 别忘了,否则你懂的
saveData方法
//导出Excel var saveData = function () { GridData.setValue(Ext.encode(gpExec.getRowsValues({selectedOnly : false}))); };
gpExec你的GridPanel主键ID
转自:http://www.cnblogs.com/PEPE/archive/2012/07/19/2599269.html
- Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
- Ext.Net 1.x_Ext.Net.GridPanel之导出EXCEL
- Ext.Net 1.x_Ext.Net.GridPanel CRUD
- Ext.Net 1.x_Ext.Net.GridPanel 事件
- Ext.Net 1.x_Ext.Net.GridPanel 删除行提示
- Ext.Net 1.x_Ext.Net.GridPanel行按钮高亮否
- Ext.Net 1.x_Ext.Net.GridPanel行选择
- Ext.Net 1.x_Ext.Net.GridPanel嵌套checkbox
- Ext.Net 1.x_Ext.Net.GridPanel嵌套COMBOX
- Ext.Net 1.x_Ext.Net.GridPanel 之锁定列
- Ext.Net 1.x_Ext.Net.GridPanel之Filters 过滤数据
- Ext.Net 1.x_Ext.Net.GridPanel字体格式化、颜色配置
- Ext.Net 1.x_Ext.Net.GridPanel RowExpander运用案列
- Ext.Net 1.x_Ext.Net.GridPanel关键字添加背景色
- Ext.Net 1.x_Ext.Net.GridPanel之右键菜单
- Ext.Net 1.x_Ext.Net.GridPanel嵌套Checkbox
- Ext.Net 1.x_Ext.Net.GridPanel 模拟CS实现主从表操作
- Ext.NET的GridPanel导出Excel
- Spring-Transaction 事务配置的五种实现方式
- 技术管理案例:代码规范还要继续推行吗?
- 报销单关联显示报销人出差信息
- DSP中断系统及其应用
- Hibernate映射文件ID属性
- Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
- GLSL的简介(下)
- js的变量的定义的讲解
- 皮卡丘是如何发电的?
- AdobeAir跨平台移动企业开发架构
- XML基础--解析(Dom4J)
- 推荐一个方便生成ToString和Equals等方法的Eclipse插件
- 小崔说事——傻瓜式:倾心打造CSDN个性化模块
- 推荐一款好好用的截图软件