-
Notifications
You must be signed in to change notification settings - Fork 5
C#导出csv
chen shucheng edited this page Aug 2, 2017
·
1 revision
public void DataTableToCsv(DataTable dt, string fileName)
{
//Clear <div id="loading" ..
HttpContext.Current.Response.Clear();
#region Export Grid to CSV
System.IO.StringWriter sw = new System.IO.StringWriter();
int iColCount = dt.Columns.Count;
//string columnsName = string.Empty;
for (int i = 0; i < iColCount; i++)
{
//columnsName = dt.Columns[i].ToString();
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().Replace("\r","").Replace("\n","").Replace("\t","").Replace("\v","") + "\"");
else
sw.Write("\"\"");
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
#endregion
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + string.Format("{0:yyyyMMddhhmmss}", DateTime.Now) + ".csv");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.Write(sw);
HttpContext.Current.Response.End();
}