Экспорт из набора данных в файл с разделителями табуляции - PullRequest
6 голосов
/ 16 декабря 2010

У меня есть данные в наборе данных.Как мне экспортировать его в файл с разделителями табуляции?

Ответы [ 4 ]

7 голосов
/ 16 декабря 2010
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();
4 голосов
/ 18 июня 2014

Та же проблема здесь. Вам лучше подойдет:

var builder = new StringBuilder();
foreach (DataRow row in dataSet.Tables.First().Rows) {
   builder.AppendLine(String.Join("\t", row.ItemArray));
}
File.WriteAllText(filePath, builder.ToString());

Это немного компактнее и (возможно) чуть быстрее.

0 голосов
/ 29 августа 2013

Попробуйте это;

    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();
0 голосов
/ 16 декабря 2010

Попробуйте это:

http://www.codeproject.com/KB/aspnet/ExportClassLibrary.aspx

Надеюсь, вы сможете легко получить таблицы данных из набора данных ...

...