Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Существует два метода - Вы можете используемые Инструменты Visual Studio для Office (VSTO):
http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx
или можно использовать COM:
http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx
Я не уверен, работал ли метод VSTO в более старых версиях Excel, но метод COM должен хорошо работать.
Необходимо также взглянуть на ExcelDna (http://www.codeplex.com/exceldna). ExcelDna является проектом с открытым исходным кодом (также свободный для коммерческого использования), который позволяет Вам создавать собственное .xll дополнительное использование .NET. Могут быть созданы и пользовательские функции (UDFs) и макросы. Ваш дополнительный код может быть в основанных на тексте файлах сценария, содержащих VB, C# или код F#, или в управляемом .dlls.
Так как собственные интерфейсы Excel SDK используются, а не основанная на COM автоматизация, дополнения на основе ExcelDna могут быть легко развернуты и не потребовать никакой регистрации. ExcelDna поддерживает версии Excel от Excel '97 к Excel 2007 и включает поддержку типов данных Excel 2007 (большой лист и строки Unicode), а также многопоточный перерасчет под Excel 2007.