Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ArrayIndexOutOfBoundsException problem 
V
    Опции темы
bulat01
Дата 8.6.2012, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



привет всем, 

помогите разобраться, использую библеотеку JXL - для форматирования ячеек в эксель шите. 

В процессе раннинга программы - идет валидация шита. 
Конвертированный с ексель документа 2007 на 2003 - и при ранинге программы - получаю ошибку: 

Код

java.lang.ArrayIndexOutOfBoundsException: 62
    at jxl.biff.IndexMapping.getNewIndex(IndexMapping.java:68)
    at jxl.write.biff.ColumnInfoRecord.rationalize(ColumnInfoRecord.java:271)
    at jxl.write.biff.WritableSheetImpl.rationalize(WritableSheetImpl.java:2226)
    at jxl.write.biff.WritableWorkbookImpl.rationalize(WritableWorkbookImpl.java:1030)
    at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:701)
    at kz.documentum.agipkco.upload.DataValidationSupplier.selectFromPickListItems(DataValidationSupplier.java:848)
    at kz.documentum.agipkco.upload.DataCollection2.nextToDataProcessing(DataCollection2.java:527)
    at kz.documentum.agipkco.upload.DataCollection2$2.actionPerformed(DataCollection2.java:194)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)



Никто не сталкивался с подобной проблемой? 

А у меня установлен - 2003 офис. 
А если добавить новый шит в тот же самый эксель документ и установить его 1 шитом- и добавить тот же контент - то все отрабатывается нормально без ошибок. 
Как можно решить или обойти подобную проблему? 

С уважением!

PM MAIL   Вверх
Pretorian
Дата 8.6.2012, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 9.12.2011
Где: нигде

Репутация: 1
Всего: 1



Попробуйте просто скопировать нужный exel файл, переименовав его. А потом уже с переименованным файлом работать, делать валидацию и т.д. Может поможет...
Код

public static void copy(File from, File to) throws IOException {
  FileInputStream in = new FileInputStream(from);
  FileOutputStream out = new FileOutputStream(to);
  byte[] buffer = new byte[1024];
  int len;
  while ((len = in.read(buffer)) != -1) {
    out.write(buffer, 0, len);
  }
  out.close();
  in.close();
}

..........
File f1 = new File("exel_file.xls");
File f2 = new File("exel_file_copy.xls");
copy(f1, f2);
..........
//Дальше работаем с файлом f2

PM   Вверх
bulat01
Дата 10.6.2012, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Спасибо за ответ.

У меня проблема.
Не подскажите - если копирую контент со старого нерабочего эксель файла (размер его 95 KB) и создаю новый эксель файл - вставляю контент 
и сохраняю (его размер составляет 84 KB). И при таком раскладе - ошибка не появляется.

При выполнении вашего когда - копирование выполняется в другой файл (все хорошо) - но размер остается тот же самый (что чревато ошибкой при добавлении в мой код валидации). Как мне сделать так чтобы при выполнении кода - он сохранился с размером 84 KB?

Спасибо!
PM MAIL   Вверх
Pretorian
Дата 11.6.2012, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 9.12.2011
Где: нигде

Репутация: 1
Всего: 1



Как Вы копируете контент со старого файла в новый? Подробно, пожалуйста.
PM   Вверх
bulat01
Дата 11.6.2012, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Открываю проблемный эксель файл - > Ctrl+A -> Копировать -> Создаю новый эксель файл - > Вставляю туда из буфера - Сохраняю.

Вот примерно так.
PM MAIL   Вверх
Pretorian
Дата 11.6.2012, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 9.12.2011
Где: нигде

Репутация: 1
Всего: 1



Здесь описана похожая проблема. Там советуют использовать библиотеку Apache POI. С её помощью можно работать как с 2003 экселем, так и с 2007. При этом не нужно будет пересохранять файл из 2007 в 2003.
PM   Вверх
bulat01
Дата 12.6.2012, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Спасибо большое Pretorian,
будем работать в этом направлении.

С уважением!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0792 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.