Я анализирую большой файл, используя подход 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 перебирать только строки, а не каждый элемент на листе?
Спасибо,