把一个dataset里面的多个datatable导出到一个Excel中的多个Sheet。时而乱码,时而不乱码;时而页面自动关闭,时而不关闭。未发现规律。乱码时服务器上的文件是没有问题的(是先把Excel文件保存到服务器端的一个文件夹下再输出给用户),只是下载之后再打开有问题,感觉是把前台aspx文件输出到了Excel,如图所示:
而服务器上的文件或者说正常情况却是:
把文件输出到前台的代码如下:
protected static void SaveXls(string fileURL)
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset = "GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpContext.Current.Server.UrlEncode(fileInfo.Name.ToString()));
System.Web.HttpContext.Current.Response.AddHeader("content-length", fileInfo.Length.ToString());
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
System.Web.HttpContext.Current.Response.WriteFile(fileURL);
//System.Web.HttpContext.Current.Response.Flush();
//System.Web.HttpContext.Current.Response.End();
}
就是这样,求大神解救。
问题已解决,在writefile之前暂停线程1s即可。
怎么个全法?
你是说把这句
System.Web.HttpContext.Current.Response.WriteFile(fileURL);
改成这句?
System.Web.HttpContext.Current.Response.Redirect(fileURL);
貌似不行啊。
HttpResponse 和System.Web.HttpContext.Current.Response 是两个不同的类
本回答被网友采纳ASPNET数据导出到excel文件给客户端下载的几种方法麻烦告诉我_百度知 ...
对方法一,二补充一点,如果你希望导出的是xls文件分隔符用t就可以了,不要用逗号 代码修改如下:sw.WriteLine("自动编号t姓名t年龄");foreach(DataRow dr in dt.Rows){sw.WriteLine(dr "t" dr "t" dr);} 另外,修改输出的文件扩展名为xls即可。方法三:从datagrid导出html代码,生成excel文件...
C# 导入EXCEL 报错外部表不是预期的格式错误
在asp.net网站中导出Excel文件后,再把文件导入到数据库中。 读取Excel文件时,打开连接出错。错误为:外部表不是预期的格式 解决:检查了一下,导出的Excel是标准文件不是html,没错,Excel文件正常。调试代码,创建连接对象oleDbConnection也正常,但在conn.Open()打开链接时出错。仔细看了下链接字符串,...
ASP.NET从数据库导出到EXCEL
this.ExportDataByQueryTable(1, false); this.ExportDataByQueryTable(2, true); return; } else { this.ExportDataByQueryTable(1, false); this.ExportDataByQueryTable(2, true); this.ExportDataByQueryTable(3, true); return; } } for (int i = 3; i < intSheetTotalSize; i++) { m_obj...
ASP.NET 将一个DataTable中的数据源导出多个EXCEL中,不是多个Sheet?怎么...
workBook.SaveAs(excelFilePath,Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);workBook.Close();可以创建出来一个excel再把数据贴上去,再按你要的要求循环三次...
ASP.NET 把DataTable以表格的形式输出?不用任何控件?
1、判断一下datatable.rows.count是否大于0,2、输出<table> 3、循环datatable,在循环里面输出<tr><td><\/td><td><\/td><\/tr> 4、最后在循环的外面输出<\/table> 这样就会在页面输出一个表格出来了。
ASP.NET 将一个DataTable中的数据源导出多个EXCEL中,不是多个Sheet?怎么...
用npoi可以实现。循环导入execl,指定循环条数,超过就创建新的execl。很简单的。
从datatable中提取字段 asp.net C#语言
回答:DataSet是用于存放DataTable 等的数据集.ds.Tables["IDb"]只是取出了哪张数据表.ds.Tables["IDb"].rows[0]["ID"].toString();取出的是该张数据表中第一行列名为ID的值,若有多行,需要循环取. 若还有不明白之处,加Q,麻烦把问题结了..呵呵~
ASP.net(C#) 从数据库提取数据 如何显示到网页指定位置
<li><a href="#" class="index_news_top"> <%# Eval("Title")%><\/a><\/li> <\/ItemTemplate> <\/asp:Repeater> <\/ul> <\/div> 你看这个,最外层有个div,你可固定这个div的位置,然后里面是ul-li列表,还有个Repeater标签,在后台应该先绑定Repeater,然后<%# Eval("Title")%>这个...
asp.net三个datatable导出到同一个excel文件三个不同sheet工作表中_百度...
1,网上去找EXCEL的API看看,很多很全!2,项目添加 Microsoft.Office.Interop.Excel.dll 的引用 3,写入EXCEL数据很简单 相比Word PDF 简单多了 4,项目里添加要写入EXCEL文件的模板或者程序生成也可以 5,Application _excelApp =new Application();创建一个EXCEL应用程序对象 6,这步有个分支 A:...
ASP.NET C#实现DataTable 转化为xml格式
protected void ImageButton2_Click(object sender, ImageClickEventArgs e){ string uname=Session["login"].ToString();XmlTextWriter xw = new XmlTextWriter(Server.MapPath("xmlfiles\/") + uname + DateTime.Now.ToString("yyyyMMddHHmmss") + "购买信息.xml", null);\/\/实例化,且在实例化过程中...