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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экспорт из БД в Excel (библиотека jxl), проблема 
:(
    Опции темы
0x00
  Дата 22.4.2010, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Использую библиотеку jxl. Вроде все по мануалу.
От сервлета приходит пустой файл (0байт).
Непонимаю, что делаю не так.

Код

package org.umek.bts;

import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.OutputStream;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class export_xls extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            try{
                OutputStream out = response.getOutputStream();
                HttpSession session = request.getSession(true); 
                response.setContentType("application/vnd.ms-excel");
                response.setHeader("Content-Disposition", "attachment; filename=compile.xls");                
                String SQL =  "select b.id \"№\",\n" +
                              "       b.name \"Наименование\",\n" +
                              "       b.descr \"Содержание\",\n" +
                              "       s.name \"Источник\" ,\n" +
                              "       b.internal_num \"Внутр №\",\n" +
                              "       su.name \"Подсистема\",\n" +
                              "       b.expire_date \"Срок\",\n" +
                              "       b.date_rec \"Составлена\",\n" +
                              "       b.last_change \"Изменена\",\n" +
                              "       u.last_name  || ' ' ||u.name ||' '|| u.patronymic_name ФИО,\n" +
                              "       p.name \"Должность\",\n" +
                              "       c.name \"Кампания\",\n" +
                              "       st.name \"Статус\"\n" +
                              "  from bts.buglist b,\n" +
                              "       bts.companies c,\n" +
                              "       bts.positions p,\n" +
                              "       bts.sources s,\n" +
                              "       bts.users u,\n" +
                              "       bts.subsystems su,\n" +
                              "       bts.statuses st\n" +
                              " where s.id = b.source_id\n" +
                              "       and c.id       = b.company_id\n" +
                              "       and p.id       = u.position\n" +
                              "       and u.id = b.user_id\n" +
                              "       and su.id      = b.subsys_id\n" +
                              "       and st.id      = b.status\n" +
                              // "       and rownum     < 40\n" +
                              "  order by \"№\" desc";
                Connection conn = (Connection)session.getAttribute("connect");
                Statement stm = conn.createStatement();
                ResultSet rs = stm.executeQuery(SQL);
                ResultSetMetaData meta = rs.getMetaData();                      
                WritableWorkbook w = Workbook.createWorkbook(out);                
                WritableSheet s = w.createSheet("Page1", 0);                                
                String columnName;
                try{
                    int j=0;
                    while (rs.next()){
                        for(int i=0; i<meta.getColumnCount(); i++){
                            columnName = meta.getColumnName(i);
                            columnName = columnName.toLowerCase();
                            s.addCell(new Label(i, j, rs.getString(columnName)));
                        }
                        j++;
                    }
                    w.write();
                    w.close();
                }catch (Exception e){
                        throw new ServletException("Exception in creating cells", e);
                }finally{
                    if(out != null){
                        out.close();
                    }
                }
            }catch(SQLException ex){
                throw new ServletException("Exception in SQL query", ex);
            }
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try{
            processRequest(request, response);
        }catch(Exception ex){
            ex.printStackTrace();
        }
    } 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try{
            processRequest(request, response);
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
    @Override
    public String getServletInfo() {
        return "Export menu.jsp table context in xls file";
    }
}

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

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

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


 




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


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

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