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/"文件下。

posted @ 2021-05-21 11:16  创客未来  阅读(327)  评论(0编辑  收藏  举报