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.CsvEngine.DataTableToCsv(dataTable, filename);
Run Code Online (Sandbox Code Playgroud)
WriteFile(继承自FileHelperEngine)已重载.将记录数组写入指定的文件.
WriteStream(继承自FileHelperEngine)已重载.将记录数组写入指定的Stream.
WriteString(继承自FileHelperEngine)已重载.将一组记录写入String并返回它.
参考:
写入CSV文件并导出?
将数据导出到应用程序的逗号分隔(CSV)文件,如Excel
,使用"保存文件"对话框将数据导出为CSV - C#
| 归档时间: |
|
| 查看次数: |
14565 次 |
| 最近记录: |