Есть ли какая-либо форма оператора, которая преобразует строку данных в строку CSV, чтобы ее можно было записать в файл .csv? (с промежуточными ступенями или без них)
Datarow в CSV строку C #
comment
Вы смотрели на этот вопрос Написание файла CSV в .net (в частности, этот ответ), между этим и эти примеры Linq to DataSets, вы, вероятно, могли бы написать экспорт менее чем за 10 строк кода.
- person R0MANARMY   schedule 08.03.2012
Ответы (4)
Быстрый поиск в Google показал это: http://www.rcs-solutions.com/blog/2009/01/15/ConvertDataTableToCSVViaExtensionMethod.aspx
Это немного устарело. Нет собственного способа сделать это, поэтому вам нужно будет либо перебирать данные, используя конструкции цикла, но я бы рекомендовал использовать методы LINQ, так как это будет намного чище.
person
ctorx
schedule
08.03.2012
Чтение кажется весьма многообещающим
- person Dashzapp; 08.03.2012
Ссылка не работает.
- person Jay Elston; 01.11.2017
Попробуйте использовать следующий код:
StringBuilder sb = new StringBuilder();
var columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray();
sb.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in dt.Rows)
{
var fields = row.ItemArray.Select(field => field.ToString()).ToArray();
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText("test.csv", sb.ToString());
person
Community
schedule
08.03.2012
Где у тебя проблема ???? Не могли бы вы объяснить мне, где у вас проблема ????
- person ; 08.03.2012
Я все еще тестирую, не надо в них бесконечных вопросительных знаков! Я получаю ошибки в var columnnames = dt.columns ‹- и dt.Rows‹ -
- person Dashzapp; 08.03.2012
Вы что-то импортировали из класса System?
- person Dashzapp; 08.03.2012
Вы говорите о пространствах имен?
- person ; 08.03.2012
Да, именно так, позвольте мне опубликовать ошибку: Ошибка 2 «System.Data.DataSet» не содержит определения для «Rows» и не может быть найден метод расширения «Rows», принимающий первый аргумент типа «System.Data.DataSet» (вам не хватает директивы using или ссылки на сборку?) Другой точно такой же, только с использованием столбцов вместо строк
- person Dashzapp; 08.03.2012
позвольте нам продолжить обсуждение в чате
- person ; 08.03.2012
Ниже работает для меня.
foreach (DataRow row in rows)
{
string line = "";
for (int i = 0; i < row.ItemArray.Length; i++)
{
line += row[i] + ",";
}
line = line.TrimEnd(',');
}
person
Christopher Smit
schedule
19.06.2019
На днях я просматривал это:
Согласно краткому руководству вы можете написать такой код:
[DelimitedRecord(",")]
public class Customer
{
public int CustId;
public string Name;
public decimal Balance;
}
FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
Customer[] res = engine.ReadFile("FileIn.txt") as Customer[];
engine.WriteFile("FileOut.txt", res);
person
Aaron Anodide
schedule
08.03.2012