首页 新闻 搜索 专区 学院

导出数据到Excel,直接打开出现未能下载问题。

0
悬赏园豆:30 [已关闭问题] 关闭于 2013-08-29 10:25

public void DC()
{
string slbm = txt_slbm.Text.Trim();
string szdw = txt_szdw.Text.Trim();
string time1 = txttime1.Value.Trim();
string time2 = txttime2.Value.Trim();
DataTable dt = DataSelect(slbm, szdw, time1, time2);

StringBuilder str = new StringBuilder();

str.Append("<meta http-equiv='content-type' content='application/ms-excel; charset=UTF-8'>");
//str.Append("<table cellspacing='0' border='1' id='GridView1' style='width:100%;border-collapse:collapse;font-size:13px;'>");
str.Append("<table border='1' cellpadding='0' cellspacing='0'>");

str.Append("<tr><th>编号</th><th>受理部门</th><th>检查部门</th><th>检查时间</th><th>所在部位</th><th>事由</th><th>序号</th><th>具体内容</th><th>负责人</th><th>整改人</th><th>完成日期</th><th>是否符合</th><th>验证人</th><th>验证日期</th></tr>");

for (int i = 0; i < dt.Rows.Count; i++)
{
string sql2 = "select * from TB_FCZGD_NR where GZD_ID=" + dt.Rows[i]["GZD_ID"] + "";
DataTable tb2 = oh.GetDataTable(sql2);
if (tb2.Rows.Count > 0)
{
str.Append("<tr>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + dt.Rows[i]["GZD_NUMBER"] + "</td>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + dt.Rows[i]["SL_UNIT"] + "</td>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + dt.Rows[i]["JC_UNIT"] + "</td>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + Convert.ToDateTime(dt.Rows[i]["JC_TIME"]).ToString("yyyy-MM-dd") + "</td>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + dt.Rows[i]["JC_BW"] + "</td>");
str.Append("<td rowspan='" + tb2.Rows.Count + "'>" + dt.Rows[i]["SY"] + "</td>");


for (int j = 0; j < tb2.Rows.Count; j++)
{
if (j == 0)
{
str.Append("<td>" + (0 + 1) + "</td>");
str.Append("<td>" + tb2.Rows[0]["NR"] + "</td>");
str.Append("<td>" + tb2.Rows[0]["FZR"] + "</td>");
str.Append("<td>" + tb2.Rows[0]["ZGR"] + "</td>");
string wcrq = tb2.Rows[0]["WCRQ"].ToString() == "" ? "" : Convert.ToDateTime(tb2.Rows[0]["WCRQ"]).ToString("yyyy-MM-dd");
str.Append("<td>" + wcrq + "</td>");
str.Append("<td>" + tb2.Rows[0]["SFFH"] + "</td>");
str.Append("<td>" + tb2.Rows[0]["YZR"] + "</td>");
string yzrq = tb2.Rows[0]["YZRQ"].ToString() == "" ? "" : Convert.ToDateTime(tb2.Rows[0]["YZRQ"]).ToString("yyyy-MM-dd");
str.Append("<td>" + yzrq + "</td>");
str.Append("</tr>");
}
else if (j > 0)
{
str.Append("<tr>");
str.Append("<td>" + (j + 1) + "</td>");
str.Append("<td>" + tb2.Rows[j]["NR"] + "</td>");
str.Append("<td>" + tb2.Rows[j]["FZR"] + "</td>");
str.Append("<td>" + tb2.Rows[j]["ZGR"] + "</td>");
string wcrq = tb2.Rows[j]["WCRQ"].ToString() == "" ? "" : Convert.ToDateTime(tb2.Rows[j]["WCRQ"]).ToString("yyyy-MM-dd");
str.Append("<td>" + wcrq + "</td>");
str.Append("<td>" + tb2.Rows[j]["SFFH"] + "</td>");

str.Append("<td>" + tb2.Rows[j]["YZR"] + "</td>");
string yzrq = tb2.Rows[j]["YZRQ"].ToString() == "" ? "" : Convert.ToDateTime(tb2.Rows[j]["YZRQ"]).ToString("yyyy-MM-dd");
str.Append("<td>" + yzrq + "</td>");

str.Append("</tr>");

}

}
}

}
str.Append("</table>");

HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.Write(str.ToString());
HttpContext.Current.Response.End();
//Response.Clear();
//Response.Buffer = true;
//Response.Charset = "UTF_8";
//Response.AppendHeader("Content-Disposition", "attachment;filename= " + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
//Response.ContentEncoding = System.Text.Encoding.UTF8;
//Response.ContentType = "application/ms-excel";
//this.EnableViewState = false;
//System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ZH-CN", true);

//Response.Write(str.ToString());

//Response.End();

}

JesseWong的主页 JesseWong | 初学一级 | 园豆:5
提问于:2013-08-08 13:20
< >
分享
所有回答(7)
0

http://www.cnblogs.com/yipeng-yu/archive/2013/03/21/2972720.html

Yu | 园豆:12944 (专家六级) | 2013-08-08 13:26

不行啊

支持(0) 反对(0) JesseWong | 园豆:5 (初学一级) | 2013-08-08 13:32

@JesseWong: 是不是IE安装了什么保护工具呢

支持(0) 反对(0) Yu | 园豆:12944 (专家六级) | 2013-08-08 13:37
0

你就是拼接的一个table...还是别这么用导出吧。

推荐你看看NPOI,Epplus等第三方类库实现~简单,效果好~

幻天芒 | 园豆:36594 (高人七级) | 2013-08-08 13:34

我只能拼接一个table因为要根据数据进行表格的合并

支持(0) 反对(0) JesseWong | 园豆:5 (初学一级) | 2013-08-08 13:36

@JesseWong: 合并行列对这些类库来说,那是小意思。呵呵~

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2013-08-08 14:23
0

兼容模式,或换个别的浏览器看看能否下载

小兵仔 | 园豆:1240 (小虾三级) | 2013-08-08 13:42
0

这种方法我也常用,应该可以的;

我一般是先调用 XXX.Response.Flush(); 后再调用 XXX.Response.End();

或者你在页面上导出时就直接调用当前的Page.Response.Write("XXXX");Page.Response.Flush(); Page.Response.End(); 这样试试看。应该没有什么问题。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-08 15:21
0

我也是组的表格之后导出的Execl,用的谷歌浏览器,直接就下载了,没有提问 打开还是保存,下载之后一切正常

W宁宁 | 园豆:522 (小虾三级) | 2013-08-08 15:34
0
Insus.NET | 园豆:932 (小虾三级) | 2013-08-10 14:35
0

把导出写到一个新的页面就可以了

JesseWong | 园豆:5 (初学一级) | 2013-08-12 09:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册