Я анализирую большой файл, используя подход SAX, предложенный для:
Анализ и чтение больших файлов Excel с помощью Open XML SDK
Это моя модифицированная версия (для простоты получаем только номер строки)
using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open("BigFile.xlsx", true))
{
WorkbookPart workbookPart = myDoc.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
String rowNum;
while (reader.Read())
{
if (reader.ElementType == typeof(Row))
{
if (reader.HasAttributes)
rowNum = reader.Attributes.First(a => a.LocalName == "r").Value
}
}
}
Проблема заключается в том, что этот цикл проходит через каждый элемент / ячейку / столбец / что угодно и действует только тогда, когда тип элемента - Row.
Есть ли SAX способ зацикливаться только на строках, а не на каждом элементе на листе?
Спасибо