LinqToExcel を使用して、動的な数のプロパティ (値を持つ) を持つオブジェクトの動的リストを作成しようとしています。基本的に、オブジェクトのリストは Excel シートの内容を直接表す必要があります。ただし、ヘッダー名や数値列は事前にわかりません。
以下のコードは機能せず、コンパイルすらできませんが、私がやろうとしていることを示してくれることを願っています。また、正しい数のプロパティをループして追加する方法がありません。プロパティの名前と数は、列ヘッダーの配列から取得する必要がありますcolumnNameList
。
// get the records
var excel = new ExcelQueryFactory(path);
IEnumerable<string> columnNameList = excel.GetColumnNames(mod.SelectedSheet);
var ExpandoObject = (from x in excel.Worksheet(selectedSheet)
select new ExpandoObject()
{
ExpandoObject.Prop1 = x["excelCol1"],
ExpandoObject.Prop2 = x["excelCol2"],
ExpandoObject.Prop3 = x["excelCol3"],
ExpandoObject.Prop4 = x["excelCol4"],
ExpandoObject.Prop5 = DateTime.Now
}).ToList();