FineUI 官方论坛
标题:
请问一下Grid导出excel,是不是只能导出当前页显示的数据?
[打印本页]
作者:
violetzone
时间:
2013-7-18 10:05
标题:
请问一下Grid导出excel,是不是只能导出当前页显示的数据?
有没有可能导出所有数据?
刚刚试了一下 只能导出当前页的数据
作者:
violetzone
时间:
2013-7-18 10:05
如果可以,怎么设置啊?
作者:
秋收
时间:
2013-7-18 10:25
可以,点击按扭后再次按条件查询,然后直接导出数据集:
public static void CreateExcelForHtml(DataSet ds, string FileName, FineUI.Grid grid)//将DataSet中的数据导出Execl For Html 格式
{
//把DataSet中的数据导出,也就是把DataSet中的表中的各行信息,以ms-excel的格式Response到http流,
//说明:参数ds应为填充有数据表的DataSet,文件名是全名,包括后缀名,如execl2006.xls
HttpResponse resp;
resp = HttpContext.Current.Response;//HttpContext.Current.
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
resp.ContentType = "application/excel";
string colHeaders = "", ls_item = "",F,C;
StringBuilder sb = new StringBuilder();
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
DataTable dt = ds.Tables[0];//
DataRow[] myRow = dt.Select();//
int i = 0;
int cl = dt.Columns.Count;
for (i = 0; i < cl; i++)//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
{
colHeaders = dt.Columns[i].Caption.ToString();
colHeaders = ReturnCaption(colHeaders, grid);//根据字段名返回中文名称
sb.AppendFormat("<td>{0}</td>", colHeaders);
}
sb.Append("</tr>");
for (i = 0; i < cl; i++)//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
{
colHeaders = dt.Columns[i].Caption.ToString();
//colHeaders = ReturnCaption(colHeaders, grid);//根据字段名返回中文名称
sb.AppendFormat("<td>{0}</td>", colHeaders);
}
sb.Append("</tr>");
foreach (DataRow row in myRow)//逐行处理数据
{
sb.Append("<tr>");
for (i = 0; i < cl; i++)//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
{
ls_item = row[i].ToString().Trim();
F = dt.Columns[i].Caption.ToString().ToLower();
C = ReturnCaption(F, grid);//根据字段名返回中文名称
if (F == "cardnumber" || F == "autoid" || F == "nodenumber" || F == "parentnodenumber"||C.IndexOf("号")>=0) //如果为数值字段
{
sb.AppendFormat("<td style='mso-number-format:\"\\@\";'>{0}</td>", ls_item);
}
else sb.AppendFormat("<td>{0}</td>", ls_item);
}
sb.Append("</tr>");
}
sb.Append("</table>");
resp.Write(sb.ToString());//向HTTP输出流中写入取得的数据信息
resp.End();
}
作者:
violetzone
时间:
2013-7-18 10:32
本帖最后由 violetzone 于 2013-7-18 10:33 编辑
秋收 发表于 2013-7-18 10:25
可以,点击按扭后再次按条件查询,然后直接导出数据集:
public static void CreateExcelForHtml(D ...
谢谢,另外在论坛上还找了另外一种方法,同做参考
http://fineui.com/bbs/forum.php?mod=viewthread&tid=3324&fromuid=4767
作者:
除了时间
时间:
2013-9-24 09:04
学习了~~~~感谢分享~
作者:
龙图腾
时间:
2013-10-18 10:03
嘿嘿,不错,踩踩
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4