ASP.NET DataGridView 导出CSV文件 后台代码
2017-02-23 09:35
295 查看
/// <summary> /// Export the data from datatable to CSV file /// </summary> /// <param name="dt"></param> public void ExportDataGridToCSV(DataTable dt) { string strFile = ""; string path = ""; //File info initialization strFile = "Times_"; strFile = strFile + DateTime.Now.ToString("yyyyMMddhhmmss"); strFile = strFile + ".csv"; path = Server.MapPath(strFile); System.IO.FileStream fs = new FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write); StreamWriter sw = new StreamWriter(fs, new System.Text.UnicodeEncoding()); //Tabel header for (int i = 0; i < dt.Columns.Count; i++) { sw.Write(dt.Columns[i].ColumnName); sw.Write("\t"); } sw.WriteLine(""); //Table body for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { sw.Write(dt.Rows[i][j].ToString()); sw.Write("\t"); } sw.WriteLine(""); } sw.Flush(); sw.Close(); DownLoadFile(path); }
/// <summary> /// DownLoadFile /// </summary> /// <param name="strFileName"></param> private bool DownLoadFile(string strFileName) { try { System.IO.FileStream fs = System.IO.File.OpenRead(strFileName); byte[] FileData = new byte[fs.Length]; fs.Read(FileData, 0, (int)fs.Length); Response.Clear(); Response.AddHeader("Content-Type", "application/notepad"); string FileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName)); Response.AddHeader("Content-Disposition", "inline;filename=" + System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34)); Response.AddHeader("Content-Length", fs.Length.ToString()); Response.BinaryWrite(FileData); fs.Close(); System.IO.File.Delete(strFileName); Response.Flush(); Response.End(); return true; } catch (Exception ex) { ex.Message.ToString(); return false; } }
保存DataTable缓存的机制:
1:使用Session
private void GetDataTable() {
DataTable dt= GetDataTable(); Session["dt"]=dt; GV_SpecView.DataSource = dt; GV_SpecView.DataBind(); }
protected void btnDownLoad_Click(object sender, EventArgs e) { DataTable dt = Session["dt"] as DataTable; if (dt.Rows.Count == 0) { Response.Write("<script>alert('No Record')</script>"); } else { ExportDataGridToCSV(dt); Session["SpecTable"] = null; } }
2:使用Cache
private void GetDataTable() {
DataTable dt= GetDataTablee();
Cache.Insert("dt", dt, null, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration);
GV_SpecView.DataSource = dt;
GV_SpecView.DataBind();
}
protected void btnDownLoad_Click(object sender, EventArgs e) { DataTable dt = (DataTable)Cache["dt"]; if (dt.Rows.Count == 0) { Response.Write("<script>alert('No Record')</script>"); } else { ExportDataGridToCSV(dt); } }
相关文章推荐
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
- 点击图片,AJAX删除后台图片文件的实现代码(asp.net)
- Ext 上传文件,前后台实现, Asp.net 代码
- asp.net 导入、导出csv文件简单应用
- ASP.NET导出CSV文件时内容出现换行解决方案
- asp.net+js 实现无刷新上传解析csv文件的代码
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- asp.net导出csv文件
- asp.net导出CSV逗号分隔值文件数字自动识别问题
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Ext 上传文件,前后台实现, Asp.net 代码
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- asp.net后台代码动态添加JS文件和css文件的引用
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 【原创】Ext 上传文件,前后台实现, Asp.net 代码
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- asp.net 导出到CSV文件乱码的问题