Я использую FileHelpers для экспорта динамически созданных данных из моего приложения. У меня есть DataGridView, столбцы и строки которого могут редактировать пользователи (добавлять, удалять, манипулировать ими), поэтому я понятия не имею, какие данные наконец передаются в FileHelpers.
Чтение Динамическое создание файла CSV с помощью FileHelpers указало мне на метод CsvEngine.DataTableToCsv . К сожалению, этот метод не экранирует поля, содержащие разделитель, двойные кавычки и символы новой строки.
Если бы у меня был предопределенный класс, я мог бы использовать FieldQuoted-Annotation, чтобы заставить FileHelper использовать правильный формат, но, поскольку это не так, я не знаю, как архивировать это с динамически созданными данными.
// Редактировать: некоторый код / Текущий подход:
/// <summary>
/// Converts the Data in a DGV into a DataTable.
/// </summary>
/// <param name="dataGridView"></param>
/// <returns></returns>
public static DataTable GetDataTableFromDGV(DataGridView dgv)
{
DataTable myDT = new DataTable();
// add Columns
foreach (DataGridViewColumn col in dgv.Columns)
{
myDT.Columns.Add(col.Name);
};
// add Rows
foreach (DataGridViewRow row in dgv.Rows)
{
List<Object> line = new List<object>();
foreach (DataGridViewCell cell in row.Cells)
{
line.Add(cell.Value);
}
myDT.Rows.Add(line.ToArray<Object>());
}
return myDT;
}
public void main(){
String filename = "test.csv"
DataTable dt = GetDataTableFromDGV(this.dgv);
CsvEngine.DataTableToCsv(dt, filename, ',');
}
Есть идеи?