2017-09-18 8 views
0

OpenXMLを使用してExcelの2番目の列から値を取得したいと考えています。私が私のDBに保存するのはこれですOpenXMLを使用してIEnumerableからStringに変換する

System.Linq.Enumerable+WhereSelectEnumerableIterator`2[DocumentFormat.OpenXml.Spreadsheet.Cell,System.String] 

しかし、その列は文字列です。 Entity Frameworkを使用してテーブルに挿入します。

foreach (Row r in sheet.Elements<Row>().Skip(1)) 
{ 
    db.Table.Add(new Table{ 
     Id= Convert.ToInt32(r.Elements<Cell>().First().CellValue.Text), 
    Name= r.Elements<Cell>().Where(c=>c.CellReference=="B2").Select(x=>x.CellValue.Text).ToString() 
    }); 
    db.SaveChanges(); 
} 

名前は私の2番目の列です。

答えて

0

この行は:

Name= r.Elements<Cell>().Where(c=>c.CellReference=="B2").Select(x=>x.CellValue.Text).ToString(); 

問題を引き起こしています。おそらく、あなたはこれを望みます:

Name= r.Elements<Cell>().Where(c=>c.CellReference=="B2").Select(x=>x.CellValue.Text).SingleOrDefault().ToString(); 
                        ^^^^^^^^^^^^^ 
関連する問題