如何在asp.net中创建.csv文件?

Vik*_*kas 4 c# asp.net

如何从asp.net中读取数据库创建.CSV文件?任何人都可以建议我如何在asp.net中创建.CSV文件?

提前致谢.

Nir*_*ngh 5

检查:将DataTable导出为CSV文件格式

public void CreateCSVFile(DataTable dt, string strFilePath)    
    {    
        #region Export Grid to CSV     

        // Create the CSV file to which grid data will be exported.    
        StreamWriter sw = new StreamWriter(strFilePath, false);

        // First we will write the headers.    
        //DataTable dt = m_dsProducts.Tables[0];    
        int iColCount = dt.Columns.Count;

        for (int i = 0; i < iColCount; i++)    
        {    
            sw.Write(dt.Columns[i]);    
            if (i < iColCount - 1)    
            {    
                sw.Write(",");    
            }    
        }    
        sw.Write(sw.NewLine);

        // Now write all the rows.    
        foreach (DataRow dr in dt.Rows)    
        {    
            for (int i = 0; i < iColCount; i++)    
            {    
                if (!Convert.IsDBNull(dr[i]))    
                {    
                    sw.Write(dr[i].ToString());    
                }    
                if (i < iColCount - 1)    
                {    
                    sw.Write(",");    
                }    
            }    
            sw.Write(sw.NewLine);    
        }    
        sw.Close(); 

        #endregion    
    }
Run Code Online (Sandbox Code Playgroud)

如果您尝试强制下载始终为"另存为",则应将content-type设置为application/octet-stream.

资源:

 string attachment = "attachment; filename=MyCsvLol.csv";
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ClearHeaders();
    HttpContext.Current.Response.ClearContent();
    HttpContext.Current.Response.AddHeader("content-disposition", attachment);
    HttpContext.Current.Response.ContentType = "text/csv";
    HttpContext.Current.Response.AddHeader("Pragma", "public");

    var sb = new StringBuilder();
    foreach(var line in DataToExportToCSV)
      sb.AppendLine(TransformDataLineIntoCsv(line));

    HttpContext.Current.Response.Write(sb.ToString());
    HttpContext.Current.Response.End();
Run Code Online (Sandbox Code Playgroud)

其中最简单的就是使用FileHelpers Library

FileHelpers.CsvEngine.DataTableToCsv(dataTable, filename);
Run Code Online (Sandbox Code Playgroud)

WriteFile(继承自FileHelperEngine)已重载.将记录数组写入指定的文件.

WriteStream(继承自FileHelperEngine)已重载.将记录数组写入指定的Stream.

WriteString(继承自FileHelperEngine)已重载.将一组记录写入String并返回它.

参考:
写入CSV文件并导出?
将数据导出到应用程序的逗号分隔(CSV)文件,如Excel
,使用"保存文件"对话框将数据导出为CSV - C#

  • 您编写CSV文件的代码不完整.如果字段包含逗号,则Excel等程序将无法正确解析该字段. (4认同)