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, ',');
}
何か案は?