Я использую 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, ',');
}
Любые идеи?