在C#中无法读取具有不同字体的电子表格单元格

时间:2017-02-15 06:52:42

标签: c# excel

电子表格包含5列8行。第一行是工作表的标题。我必须阅读细胞的所有数据。最后一列包含空白值。 C#无法读取第7行和第8行的第5列。下面的代码返回数组索引超出绑定的异常。

行[7] .Descendants()。ElementAt的(4)

我发现第7行和第8行的第5列的字体大小与另一行不同。如果我更改了字体大小,那么它工作正常。我对这种不自然的行为没有任何解释。

请在下面找到代码库

using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(filePath, false))
            {
                WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart;
                var workBookSheet = spreadSheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(s => s.Name.ToString() == "Feuil1").FirstOrDefault();

                if (workBookSheet != null)
                {
                    string relationshipId = workBookSheet.Id.Value;
                    WorksheetPart worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId);
                    Worksheet workSheet = worksheetPart.Worksheet;
                    SheetData sheetData = workSheet.GetFirstChild<SheetData>();
                    IEnumerable<Row> rows = sheetData.Descendants<Row>();
                    var data = rows.ElementAt(2).Descendants<Cell>().ElementAt(4);
                }
            }

电子表格如下所示 - enter image description here

根据表单,我在第3行第4列出错。

1 个答案:

答案 0 :(得分:0)

尝试此操作以获取值

#if