私はajaxのポストコールから得たJSON
オブジェクトを持っています。これを以下のようなCustomclassオブジェクトのリストにマッピングしています。リストオブジェクトをデータテーブルに変換できません
[ObjectFilter(Param = "postdata", RootType = typeof(List<ExportToExcel8020>))]
public void ExportToExcel(List<ExportToExcel8020> text)
{
//List<ExportToExcel8020> rm = text.AsEnumerable().ToList();
//DataTable UserDt = rm .ToDataTable();
DataTable UserDt = text.ToDataTable();
}
これは
、私のリストオブジェクトがどのように見えるかである今、私はこのgeneric list object
iは、以下の方法を使用することにより、これを行うにしようとしていますdatatable
、 に変換することにしたいです。しかし、私は
見つかりませんでした「System.Collections.Generic.List < ... Domain.Common.ExportToExcel8020>」「ToDataTable」と拡張子のないメソッドの定義が含まれていません「ToDataTable」受諾というエラーを取得しますタイプの最初の引数...
「System.Collections.Generic.List < ... Domain.Common.ExportToExcel8020>」(あなたがusingディレクティブまたはアセンブリ参照が不足している?)
public static DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
//Get all the properties
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
//Setting column names as Property names
dataTable.Columns.Add(prop.Name);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
//inserting property values to datatable rows
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
//put a breakpoint here and check datatable
return dataTable;
}
私がdatatable
としてそれを必要とする理由はopenxml
を使用し、excel
ファイルをエクスポートすることです。
私のコードに何か問題がありますか?または私のapporach自体が間違っていますか?
拡張メソッドを作成しようとしているようです。 'public static DataTable ToDataTable(このリストアイテム)'を実行する必要があります。 –