使用open xml读取Excel文件时遇到问题 - 我希望我的程序读取所有行并显示数据。在遍历行的foreach循环中,程序获得随机行数,这大于excel中写入某些内容的实际行数,并导致NullReferenceException。不应该是foreach"知道"何时停止?
var sharedStringTable = myWorkbook.WorkbookPart.SharedStringTablePart;
var definedNames = myWorkbook.WorkbookPart.Workbook.DefinedNames;
var worksheetPart = myWorkbook.GetWorksheetPartByName("Sheet1");
SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
int lala = 1;
var rows = worksheetPart.Worksheet.Descendants<Row>();
foreach (Row r in rows)
{
var val1 = worksheetPart.ReadCellContent(definedNames, sharedStringTable, string.Format("B{0}", lala));
lala++;
}
答案 0 :(得分:0)
您在循环中没有引用r。 foreach不应仅仅用作计数器,这就是为什么要在foreach (Row r in rows)
中声明新变量的原因。
基本上,你循环遍历rows
但是以任何方式调用/引用不属于r
的项(在当前迭代中循环的行)。 / p>