2015-07-20 89 views
0

我有一個導出MySQL表格的excel文件的代碼。我想導出帶有用戶可以理解的列名稱的excel文件。我如何設置這些新的列名稱。我的代碼如下所示。提前感謝。如何設置字段名稱excel導出java

public Response getEventsAsExcel(@Context HttpServletResponse response) throws Throwable { 
    DataReader reader = getEvents(); 

    ExcelDocument excelDocument = new ExcelDocument(); 
    DataWriter writer = new ExcelWriter(excelDocument).setFieldNamesInFirstRow(true); 

    JobTemplate.DEFAULT.transfer(reader, writer); 

    response.setContentType("application/vnd.ms-excel"); 
    response.setHeader("Content-Disposition", "attachment; filename=\"export.xls\""); 
    OutputStream outputStream = response.getOutputStream(); 
    excelDocument.save(outputStream); 

    return Response.ok().build(); 
} 

回答

0

這是我使用的示例代碼。

try { 
      response.setContentType("application/vnd.ms-excel"); 
      String reportName = "excelname_.xls"; 
      response.setHeader("Content-disposition", "attachment; filename=" + reportName); 
      ArrayList<String> rows = new ArrayList<String>(); 
      rows.add("col1 name"); 
      rows.add("\t"); 
      rows.add("col2 name"); 
      rows.add("\t"); 
      rows.add("col3 name"); 
      rows.add("\n"); 

      for (int i = 0; i < 5; i++) { 
       rows.add("col1 data"); 
       rows.add("\t"); 
       rows.add("col2 data"); 
       rows.add("\t"); 
       rows.add("col3 data"); 
       rows.add("\n"); 
      } 
      Iterator<String> iter = rows.iterator(); 
      while (iter.hasNext()) { 
       String outputString = (String) iter.next(); 
       response.getOutputStream().print(outputString); 
      } 

      response.getOutputStream().flush(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

您可以使用簡單的sql查詢將mysql表導出爲ex​​cel。

String filename = "d:/outfile.xls";//name of excel file here 
String tablename = "abc";//name of table here 
stmt.executeQuery("SELECT * INTO OUTFILE \"" + filename + "\" FROM " + tablename);//now execute it. 
相關問題