使用 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();
^^^^^^^^^^^^^
我想使用 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();
^^^^^^^^^^^^^