我正在使用 FileHelpers 从我的应用程序中导出动态创建的数据。我有一个 DataGridView,其列和行可以由用户编辑(添加、删除、操作),所以我不知道最终将哪些数据传递给 FileHelpers。
阅读使用 FileHelpers 动态创建 CSV 文件将我指向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, ',');
}
有任何想法吗?