从数据集导出到制表符分隔文件
答
var builder = new StringBuilder()
foreach(var row in dataSet.Tables.First().Rows)
{
foreach(var cell in row.ItemArray)
{
builder.Append(cell.ToString());
if(cell != row.Cells.Last())
builder.Append("\t");
}
builder.Append(Environment.NewLine);
}
var file = new FileStream(filePath);
var writer = new StreamWriter(file);
writer.Write(builder.ToString());
writer.Flush();
writer.Close();
答
试试这个;
string updatefilePath = Server.MapPath("Files\\newoutput.PIPE");
StreamWriter sw = new StreamWriter(updatefilePath, false);
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);
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(row[i]))
{
sw.Write(row[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write("|");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
答
同样的问题在这里。为您提供了一个更好的:
var builder = new StringBuilder();
foreach (DataRow row in dataSet.Tables.First().Rows) {
builder.AppendLine(String.Join("\t", row.ItemArray));
}
File.WriteAllText(filePath, builder.ToString());
它更紧凑,可能更快一点。
试试这个问题的答案.. http://stackoverflow.com/questions/2888385/net-tab-delimited-files – 2010-12-16 20:32:32