2015-07-15 5 views
1

Я пытаюсь экспортировать данные в таблицу mysql, чтобы преуспеть с использованием весеннего спящего режима. У моего экспорта excel нет данных после экспорта. Ваша помощь будет оценена по достоинству. Это мой код below.Thanks заранееЭкспорт таблицы mysql в excel с использованием весеннего спящего режима

ExcelExport.java

@Override 
protected void buildExcelDocument(Map<String, Object> model, 
HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) 
throws Exception { 
@SuppressWarnings("unchecked") 
List<MOH> mohs = (List<MOH>) model.get("mohs"); 
HSSFSheet sheet = workbook.createSheet("MOH Form") 
HSSFRow header = sheet.createRow(0); 

header.createCell(0).setCellValue("ID"); 
header.getCell(0).setCellStyle(style); 
header.createCell(1).setCellValue("Data"); 
header.getCell(1).setCellStyle(style); 

int rowCount = 1;   
    for (MOH aBook : mohs) { 
     HSSFRow aRow = sheet.createRow(rowCount++); 
     aRow.createCell(0).setCellValue(aBook.getSurvey_id()); 
     aRow.createCell(1).setCellValue(aBook.getName()); 

Controller.java

@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET) 
public ModelAndView downloadExcel() { 
ModelAndView mav = new ModelAndView("showMOH"); 
List<MOH> mohs = new ArrayList<MOH>(); 
return new ModelAndView("excelView", "mohs", mohs); 
+1

Используйте простой запрос sql для экспорта таблицы в файл «SELECT * INTO OUTFILE \» «+ filename +» \ «FROM» + tablename. fiename может быть любым типом txt, sql, xl. Я не знал, как это сделать в спячке. – Satya

ответ

2

Вероятно, имея гораздо больше вариантов для вас: -
1. С зимовать вы это используя Apache POI. Адрес tutorial with example, который проведет вас через весь процесс.
2. Вы также можете использовать BIRT и генерировать свою базу данных в любом формате.
3. Вы можете экспортировать свои данные непосредственно из MySQL в Excel с помощью ResultSet. См. Здесь how to export ResultSet to Excel.
4. И если вы используете struts2, вы можете использовать datagrid, чтобы экспортировать его в CSV или Excel.

+0

и @ Сатья уже заявили простейший вариант .. !!! –

0

это работа

В контроллере

@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET) 
public ModelAndView downloadExcel(Model model) { 

    List<String> usersGateways = uDAO.GetGwRoleUser(); 

    List<User> users = gatewayManagedDAO.findAll(); 
    return new ModelAndView(new ExcelView(), "users ", users); 
    } 
} 

В вашем ExcelView

public class ExcelView extends AbstractXlsView{ 

@Override 
public void buildExcelDocument(Map<String, Object> model, Workbook workbook, HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    // TODO Auto-generated method stub 


    // change the file name 
    response.setHeader("Content-Disposition", "attachment; filename=\"my-exported-file.xls\""); 

    @SuppressWarnings("unchecked") 
    List<User> users= (List<GatewayManage>) model.get("users"); 

    // create excel xls sheet 
    Sheet sheet = workbook.createSheet("Users Detail"); 
    sheet.setDefaultColumnWidth(30); 

    // create style for header cells 
    CellStyle style = workbook.createCellStyle(); 
    Font font = workbook.createFont(); 
    font.setFontName("Arial"); 
    style.setFillForegroundColor(HSSFColor.BLUE.index); 
    //style.setFillPattern(FillPatternType.SOLID_FOREGROUND); 
    //font.setBold(true); 
    font.setColor(HSSFColor.BLACK.index); 
    style.setFont(font); 


    // create header row 
    Row header = sheet.createRow(0); 
    header.createCell(0).setCellValue("First Name"); 
    header.getCell(0).setCellStyle(style); 
    header.createCell(1).setCellValue("Last Name"); 
    header.getCell(1).setCellStyle(style); 
    header.createCell(2).setCellValue("Number"); 
    header.getCell(2).setCellStyle(style); 
    header.createCell(3).setCellValue("Age"); 
    header.getCell(3).setCellStyle(style); 



    int rowCount = 1; 
    for(User user : users){ 
     Row userRow = sheet.createRow(rowCount++); 
     gatewayRow.createCell(0).setCellValue(user.getFirstName()); 
     gatewayRow.createCell(1).setCellValue(gateway.getLastName()); 
     gatewayRow.createCell(2).setCellValue(gateway.getNumber()); 
     gatewayRow.createCell(3).setCellValue(gateway.getAge()); 

     } 

} 
} 

Вы можете заменить мой класс пользователя по вашей (Студен, книжка ....) и это работа!