2013-12-02 1 views
0

Я использую ниже код для извлечения данных из файла excel. И я замечаю, что объект Worksheet из WorksheetPart вызывает исключение для ссылки на null. Может ли кто-нибудь сказать мне, почему это исключение бросается? И что я могу сделать, чтобы избежать этой ошибки?OpenXML SDK- Worksheet throws null reference exception

SpreadsheetDocument doc = SpreadsheetDocument.Open("1.xlsx", true); 
Sheet sheet = (Sheet)doc.WorkbookPart.Workbook.Sheets.FirstOrDefault(); 
WorksheetPart worksheetPart = (WorksheetPart)doc.WorkbookPart 
               .GetPartById(sheet.Id); 
Worksheet worksheet = worksheetPart.Worksheet; // throws null reference exception 

ответ

0

Вы, скорее всего, не находя ваш WorksheetPart поэтому, когда вы пытаетесь получить доступ к Worksheet свойства он выдает нулевое ссылочное исключение. Попробуйте получить ваш WorksheetPart этот путь, где имя листа это имя рабочего листа:

string relId = workbookPart.Workbook.Descendants<Sheet>() 
           .First(s => sheetName.Equals(s.Name)) 
           .Id; 

WorksheetPart workSheetPart = (WorksheetPart)workbookPart.GetPartById(relId); 
+0

Я попробовал код выше. Он по-прежнему бросает ту же нулевую ошибку ссылки! – sharmila

+0

Как выглядит весь ваш код? – amurra