使用 OpenXML 从 IEnumerable 转换为字符串

Convert from IEnumerable to String with OpenXML

我想使用 OpenXML 读取 excel 的第二列中的值。我在我的数据库中保存的是这个

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

但是那一列是一个字符串。我使用 Entity Framework 插入我的 table

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();
}

名称是我的第二列。

这一行:

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();
                                                                                     ^^^^^^^^^^^^^