coolite 中GridPanel 导出excel
来源:互联网 发布:免备案php香港免费空间 编辑:程序博客网 时间:2024/04/30 00:29
官方只能导出当前页的数据, 而且表头都不能自定义。
现在的这个完全可以了。
#region 导出EXCEL
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();
}
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;
}
#endregion
还要注意一点就是
<ext:Button ID="btnExport" runat="server" Text="导出" Icon="PageExcel" AutoPostBack="true"
OnClick="ToExcels">
</ext:Button>
这个要AutoPostBack ajax的方法会报错的!
调用的时候: ToExcel(GridPanel2, "date", dt, this.Response);
source: http://hi.baidu.com/helinhai30/blog/item/5575b963c5912ed6e6113a0c.html
- coolite 中GridPanel 导出excel
- Coolite GridPanel导出 Excel
- coolite 中GridPanel 右键菜单
- Coolite GridPanel 导出(包含xls、csv、xml、pdf)
- Coolite优化导出Excel文件实现代码
- Ext.grid.gridpanel excel 导出
- Ext gridPanel 导出到Excel
- Ext gridPanel 导出到Excel 2
- Ext.NET的GridPanel导出Excel
- Coolite 中前台获取 GridPanel 当前行值并传递到后台
- Coolite 中前台获取 GridPanel 当前选择行值的代码
- 为Ext/Coolite中的GridPanel加网格线
- Ext.net1.0之GridPanel数据导出Excel
- Extjs将GridPanel中的数据导出到Excel的方法
- Ext.Net 1.x_Ext.Net.GridPanel之导出EXCEL
- Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
- Coolite一个简单例子-GridPanel列表增删改预览
- Coolite 关于gridpanel 之RowDblClick 向后台传递id实现
- html的meta标签、title 标签、Description标签、keyword 标签
- 关于java中url编码的问题
- Heritrix Crawler vs. Nutch Crawler
- 近期世界范围内地震频发,来个地震知识扫盲贴~
- jQuery的一些特性和用法:
- coolite 中GridPanel 导出excel
- 数据库查询汇总(2)
- linux shell 控制脚本执行次数
- TOASTER例子阅读(一)
- 解决MySQL乱码
- js 特效地址
- 在Windows中安装iPhone开发环境
- 非常简单方便的导出Excel的方法
- 条条大路通罗马,关联不上你,我就复制你 --- 多用户情况下复制图层做专题图