/// <summary>
/// 将DataTable导出到Txt文件
/// </summary>
/// <param name="dt"></param>eTxt
public static void ExportExcelFile(DataTable dt)
{
//获取配置文件中导出txt文件路径(注:根据自己的实际情况获取路径)
string strFilePath = CommConst.TXT_EXPORT_PATH;
if (!Directory.Exists(strFilePath))
Directory.CreateDirectory(strFilePath);
//整合文件名称 文件夹路径+时间文件名称
string fileFullName = String.Format("{0}{1}.txt", strFilePath, DateTime.Now.Ticks);
//读取文件信息
var fi = new FileInfo(fileFullName);
//判断文件目录是否存在
if (!fi.Directory.Exists)
{
fi.Directory.Create();
}
//FileMode.Append(打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用) FileAccess.Write(打开文件,用于只写)
var fs = new FileStream(fileFullName, FileMode.Append, FileAccess.Write); //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
//将字符串写入文件
var sw = new StreamWriter(fs, Encoding.UTF8);
var data = "";
int s = 0;
//写出列名称
if (s == 0)
{
++s;
for (var i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName;
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
//写入文件并换行
sw.WriteLine(data);
}
//写出各行数据
for (var i = 0; i < dt.Rows.Count; i++)
{
data = "";
for (var j = 0; j < dt.Columns.Count; j++)
{
var str = dt.Rows[i][j].ToString();
//str = str.Replace("\"", "\"\""); //替换英文冒号 英文冒号需要换成两个冒号
//if (str.Contains(',') || str.Contains('"') || str.Contains('\r') || str.Contains('\n')) //含逗号 冒号 换行符的需要放到引号中
//{
// str = string.Format("\"{0}\"", str);
//}
data += str;
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
sw.Close();
fs.Close();
}
C# 将DataTable导出到Txt文件
最新推荐文章于 2024-03-31 13:52:55 发布