C# datatable 导出 cvs格式
1.将 DataTable数据导出cvs格式
这里返回的是保存后的文件名称。
public string Export2CSV(DataTable data, string filename, bool exportHeader = true, bool change = false) { string strTime = DateTime.Now.ToString("yyyyMMddHHmmss");//随机时间 string xnmul = filename+"_"+ strTime;//返回虚拟目录 if (File.Exists(filename)) { File.Delete(filename); } string savePath = HttpContext.Current.Server.MapPath("~/Files/download/" + filename + "_" + strTime + ".csv"); File.Create(savePath).Close(); var buffer = new StringBuilder(); if (exportHeader) { for (var i = 0; i < data.Columns.Count; i++) { buffer.AppendFormat("{0}", data.Columns[i].ColumnName); if (i < data.Columns.Count - 1) buffer.Append(","); } buffer.AppendLine(); } for (var i = 0; i < data.Rows.Count; i++) { for (var j = 0; j < data.Columns.Count; j++) { if (change) { buffer.AppendFormat("{0}", data.Rows[i][j].ToString()); } else { buffer.AppendFormat("{0}", data.Rows[i][j].ToString()); } if (j < data.Columns.Count - 1) { buffer.Append(","); } } buffer.AppendLine(); } File.WriteAllText(savePath, buffer.ToString(), Encoding.Default); return xnmul; }
2.将保存后的文件名称返回给前台显示,并下载。
var url = '../Files/download/' + data.url +'.csv'; var name = data.url; layer.open({ title: '点击下载' , content: '<a href="' + url + '">' + name+'</a>' });
这里的url 是后台返回的保存后的文件名称。
我这里是下载到 "../Files/download/"文件下。