2010-11-09 3 views
0

Я застрял в точке, пытаясь экспортировать некоторые данные в Excel.Экспорт в Excel из Java - InvocationTargetException

Вот мой код

List<String> headers = new ArrayList<String>(); 
////////////////////////////////////////////// 
/// Added some headers in between to the list    
/////////////////////////////////////////////// 

HSSFCell[] cell = new HSSFCell[headers.size()]; 

for (int i = 0; i < headersHSSF.length; i++) { 
    cell[i] = excelRow.createCell(i);  
    cell[i].setCellValue(new HSSFRichTextString(headers.get(i))); 
} 

Этот код бросает InvocationTargetException для линии

cell[i].setCellValue(new HSSFRichTextString(headers.get(i))); 

Может кто-нибудь пожалуйста, скажите мне, почему это происходит?

(PS:. Я зову код из Flex UI Это не вызывается из кода Java)

+0

Для этого исключения вам потребуется предоставить стек. 'InvocationTargetException' просто означает, что метод, который был вызван косвенно (например, посредством отражения), бросил проверенное исключение. Поэтому сейчас единственная информация, которую можно почерпнуть, - «что-то пошло не так». ;-) –

+0

У меня уже есть приставка try-catch, она ничего не отображается на серверной консоли :( – Vishal

+0

@pvsm - мы * нужно * stacktrace, у вас есть журнал? Есть ли вероятность зарегистрировать исключение? –

ответ

0

InvocationTargetException является проверяемым исключением, оборачивает исключение, брошенное в вызываемой методе или конструктора.

Может быть, исключение выбрасывается при создании класса HSSFRichTextString. В этом случае я сначала посмотрел (отлаживал) значение headers.get(i).

Существует хороший шанс, что на самом деле у вас есть вложенный IndexOutOfBoundsException, так как размер массива headersHSSF может быть больше, чем размер списка headers.

Изменение подписи петли на:

for (int i = 0; i < headers.size(); i++) { 

и проверить, если ошибка такая же, пошли или разными.