Loading...
BigNikO avatar BigNikO 3 Точки

Objects Classes and Files More Problem 6 EXCELlent Knowledge

https://pastebin.com/zgBzysbu
Unhandled Exception: System.NullReferenceException: Object reference not set to an instanc
e of an object.
На 13ти ред.
Когато пусна дебъгера и се опитам да погледна какво има в workбоок, спира дебъг режима.
Някой може ли да помогне?

Тагове:
0
Programming Fundamentals
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки
Best Answer

така няколко неща както си дал пътя посмъртно няма да стане, иска да му се даде точния път в системата. Затова ти гърми с exception ти не зареждаш листа и после като се опиташ да го прочетеш ти казва че нямаш референция. а debuger-a ти  спира защото хвърляш грешка

 https://pastebin.com/zyW4kkE9 ето тук ис поиграх малко с xslx file от моите виждаш ли как единствената разлика е за че съм дал целия път. Освен това явно иска да бъде отворен и самия файл на системата и е sensitive за името на листите,както виждаш при мен office-a е на български и затова трябваше да му каже ' лист 1'  след това си минава ок  for цикъла.

Реално твоя проблем е че не задаваш правилния път към листа даваш само името. А и още нещо не знам как са го предвидили в judge така че най-добре е да питате на упражненията,защото всеки може да го плясне тоя файл на различно място,аз в случая го сложих в папката на проекта които създадох примерно за да ми е по-лесно да го намеря.

https://www.youtube.com/watch?v=TjaBWsEmbT8 ето и едно видео което показва нещата много простичко.

0
BigNikO avatar BigNikO 3 Точки

Дадох пълния път и точното име на листа, но пак същата грешка.
През F10 не ми дава да гледам стойностите на Workbook и през дебъгера с брейкпойнт също.
Аз бях дал в мяота задача точен път, в пейстбин кода го смених. 
Сега сложих грешен път и ексепшъна е друг.
В моя случай, файлът се отваря, гледам го в такс мениджъра, но по някаква причина всичко е Null.

Съответно програмата ми спира, файлът не се затваря и в таксмениджъра сега като погледнах имах около 40 пъти отворен ексел.  :D
Затворих го, за да не е само за четене, но пак не тръгна.

Така, че имаш ли идея, защо при мен не се получава, при абсолютно един и същи код.
Решението ми е на Core 2.0 и съответно добавям Office.Interop.Excel през nuget . (Ако има някакво значение)

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

     Excel.Workbook workbook = app.Workbooks.Open(@"..."); ето това в .net core чупи. Просто не прочита нищо връща null. В .net си работи ако искаш порови за  повече инфо може би има някакво заобикаляне. Първия момент ми се стори че кода ти е .net и там си работят нещата но в .core явно нещо е променено счупено. Просто workbook връща null и от там нататък всичко свършва. И пак си мисля че трябва да разбереш и какво искат да качите в Judge с тея default пътища които слагаме никога няма да мине.

 

0
BigNikO avatar BigNikO 3 Точки

В Джъдж искат само резултата, като текст, него мога да сложа като си го проверя без да изпълнявам програмата от задачата
Искам, някак си да го подкарам на core 2.0 тоя код, а не знам какъв му е проблема.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.