由于导出CSV格式会有乱码问题,因此编码要选择Unicode。用"\t"进行分隔。具体代码如下:
public void CreateCsv(System.Data.DataTable dt, string strName)
{
StringBuilder strColu=new StringBuilder();
StringBuilder strValue=new StringBuilder();
int i=0;
try
{
StreamWriter sw = new StreamWriter(new FileStream(strName+".csv", FileMode.Create), Encoding.Unicode);
for( i=0;i<=dt.Columns.Count-1;i++)
{
strColu.Append(dt.Columns[i].ColumnName);
strColu.Append("\t");
}
strColu.Remove(strColu.Length-1,1);//移出掉最后一个,字符
sw.WriteLine(strColu);
foreach(DataRow dr in dt.Rows)
{
strValue.Remove(0,strValue.Length);//移出
for(i=0;i<=dt.Columns.Count-1;i++)
{
strValue.Append(dr[i].ToString());
strValue.Append("\t");
}
strValue.Remove(strValue.Length-1,1);//移出掉最后一个,字符
sw.WriteLine(strValue);
}
sw.Close();
}
catch(Exception ex)
{
}
}