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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Понадобилось использовать Excel 
:(
    Опции темы
Fameing
Дата 17.3.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как возможно реализовать следующие действия. Необходимо данные получение с БД вставить в шаблон Excel и отдать клиенту.
PM MAIL ICQ   Вверх
batigoal
Дата 17.3.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



POI умеет взаимодействовать с Exel'ем.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Fameing
Дата 17.3.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну для того чтобы использовать POI то нужно для начала данние из бази представить в виде XML а етого нехочется делать и очень долгий процес получится. С бази берется в среднем 15000 ти записей.
PM MAIL ICQ   Вверх
tux
Дата 17.3.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Зачем XML? Без него все прекрасно обходится.
Код

wb = new HSSFWorkbook();
sheet = wb.createSheet("Title");

Connection c = DriverManager.getConnection(url, user, password);
Statement st = c.createStatement();
        
ResultSet specRs = st.executeQuery(specSelectQuery);
        
while (specRs.next()) {
    String specName = specRs.getString("speciality_name");
    
        HSSFCellStyle cellStyle = wb.createCellStyle();
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        HSSFFont f = wb.createFont();
        f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        cellStyle.setFont(f);
        
        HSSFRow row = sheet.createRow(rowNum++);
        
        HSSFCell cell0 = row.createCell((short)0);
        cell0.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell0.setCellValue(specName);    
        cell0.setCellStyle(cellStyle);
}
specRs.close();
st.close();
c.close();

Ну и так далее.

А вот с количеством записей у тебя действительно могут возникнуть проблемы. Прежде чем сериализовать Excel-документ на диск, POI нужно создать в памяти модель этого документа. 15000 записей - довольно много. И самое печальное - это никак не решается.

Это сообщение отредактировал(а) tux - 17.3.2006, 15:14
PM MAIL Skype GTalk Jabber YIM   Вверх
AntonSaburov
Дата 17.3.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Можно попробовать сделать через ODBC - настроить ODBC для Excel и попробовать работать как с обычной базой.

У нас даже примерчик есть в FAQ - http://vingrad.ru/JAVA-JAV-000098
PM MAIL WWW ICQ   Вверх
setnull
Дата 27.1.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А можно уточнить, POI работает с Excel через COM  интерфейс, или работает с Excel-файлами?
PM MAIL   Вверх
alex_nevolin
Дата 27.1.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(setnull @ 27.1.2009,  11:17)
А можно уточнить, POI работает с Excel через COM  интерфейс, или работает с Excel-файлами?

POI работает с Excel на Pure Java.
POI Overview смотри HSSF and XSSF.

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


Новичок



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

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



Цитата(alex_nevolin @  27.1.2009,  11:45 Найти цитируемый пост)
POI работает с Excel на Pure Java.


Это действительно так, но здесь одна особенность: - поддерживается формат Office 97. Для работы с новыми форматами офисных документов нужно использовать com-мосты, например jawin. Они работают через com.

Делал подобное задание примерно два года назад.


PM   Вверх
alex_nevolin
Дата 27.1.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ig78 @ 27.1.2009,  12:12)
Цитата(alex_nevolin @  27.1.2009,  11:45 Найти цитируемый пост)
POI работает с Excel на Pure Java.

Это действительно так, но здесь одна особенность: - поддерживается формат Office 97. Для работы с новыми форматами офисных документов нужно использовать com-мосты, например jawin. Они работают через com.
делал подобное задание примерно два года назад.

Неправда, Я использовал POI для генерации Excel файлов на прошлой неделе (Нужно было преписать отчеты с переходом клиентов на 2007 office) никаких com-мостов не использовал. Чистая Java. Правда для генерации формата xslx (OpenXML) что используется в 2007 офисе нужен POI 3.5 он вроде пока POI 3.5 beta 4.
PM MAIL   Вверх
ig78
Дата 27.1.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(alex_nevolin @  27.1.2009,  15:38 Найти цитируемый пост)
на прошлой неделе 


спасибо, будут знать.
два года назад когда я делал такое задание перегонять данные в последние форматы ms office было очень проблематично, а POI на то время работал как я писал выше, т.е. приходилось использовать com-мосты.


PM   Вверх
COVD
Дата 27.1.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



MSSQL позволяет экспортировать в том числе и в excel файлы. Импорт - экспорт есть в MSOffice и в аналоге OpenOffice. Если это одноразовая задача, то, возможно, проще воспользоваться встроенными возможностями и не программировать.  
PM MAIL   Вверх
Platon
Дата 27.1.2009, 19:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Цитата(tux @  17.3.2006,  16:10 Найти цитируемый пост)
Прежде чем сериализовать Excel-документ на диск, POI нужно создать в памяти модель этого документа. 15000 записей - довольно много. И самое печальное - это никак не решается. 

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

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

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


 




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


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

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