有時候將Excel的數據另存到csv文件會出現csv格式錯誤,以下示例實現將DataTable里面的數據直接保存到csv文件。
System.Web.HttpRuntime.Cache["v_ds"] = "";
這個v_ds是一個緩存,因為有時候由於頁面刷新會清空內存的數據,這里用緩存保存起來,當然還有很多其它的辦法。
DataTable dt = (DataTable)System.Web.HttpRuntime.Cache["v_ds"]; Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=" + DateTime.Now.ToString("yyyy-MM-dd") + ".csv"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.ContentType = "application/excel"; StringBuilder sb = new StringBuilder(); sb.Append("工單號,棧板號,中箱號,SN,IMEID1,IMEID2,客戶PO\r\n"); for (int i = 0; i < dt.Rows.Count; i++) { sb.Append("\"" + dt.Rows[i]["工單號"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["棧板號"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["中箱號"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["SN"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["IMEID1"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["IMEID2"] + "\"" + ","); sb.Append("\"" + dt.Rows[i]["客戶PO"] + "\"" + "\r\n"); } Response.Write(sb.ToString()); Response.End();