Java Excel未以正确格式导出

Java Excel未以正确格式导出,java,excel,Java,Excel,我正在尝试使用jsp将数据导出到excel。但它并没有以excel格式正确导出,整个html页面只是被导出。我不知道如何使用ApachePOI。我正在使用下面的代码 response.setHeader("Content-Disposition", "attachment;filename=name.xls"); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)

我正在尝试使用jsp将数据导出到excel。但它并没有以excel格式正确导出,整个html页面只是被导出。我不知道如何使用ApachePOI。我正在使用下面的代码

response.setHeader("Content-Disposition", "attachment;filename=name.xls"); 
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);
检查教程


您需要使用POI库,然后您可以通过简单的代码将任何数据写入excel文件,如下所示:

//Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook(); 

//Create a blank sheet
XSSFSheet sheet = workbook.createSheet("Employee Data");

//This data needs to be written (Object[])
Map<String, Object[]> data = new TreeMap<String, Object[]>();
data.put("1", new Object[] {"ID", "NAME", "LASTNAME"});
data.put("2", new Object[] {1, "Amit", "Shukla"});
data.put("3", new Object[] {2, "Lokesh", "Gupta"});
data.put("4", new Object[] {3, "John", "Adwards"});
data.put("5", new Object[] {4, "Brian", "Schultz"});

//Iterate over data and write to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset)
{
    Row row = sheet.createRow(rownum++);
    Object [] objArr = data.get(key);
    int cellnum = 0;
    for (Object obj : objArr)
    {
       Cell cell = row.createCell(cellnum++);
       if(obj instanceof String)
            cell.setCellValue((String)obj);
        else if(obj instanceof Integer)
            cell.setCellValue((Integer)obj);
    }
}
try
{
    //Write the workbook in file system
    FileOutputStream out = new FileOutputStream(new File("howtodoinjava_demo.xlsx"));
    workbook.write(out);
    out.close();
    System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
} 
catch (Exception e) 
{
    e.printStackTrace();
}
//空白工作簿
XSSFWorkbook工作簿=新XSSFWorkbook();
//创建空白工作表
XSSFSheet sheet=workbook.createSheet(“员工数据”);
//需要写入此数据(对象[])
映射数据=新树映射();
data.put(“1”,新对象[]{“ID”,“NAME”,“LASTNAME”});
data.put(“2”,新对象[]{1,“Amit”,“Shukla”});
data.put(“3”,新对象[]{2,“Lokesh”,“Gupta”});
data.put(“4”,新对象[]{3,“John”,“Adwards”});
data.put(“5”,新对象[]{4,“Brian”,“Schultz”});
//迭代数据并写入工作表
Set keyset=data.keyset();
int rownum=0;
用于(字符串键:键集)
{
Row-Row=sheet.createRow(rownum++);
Object[]objArr=data.get(key);
int-cellnum=0;
用于(对象对象对象:对象对象对象)
{
Cell Cell=row.createCell(cellnum++);
if(字符串的obj实例)
cell.setCellValue((字符串)obj);
else if(obj instanceof Integer)
cell.setCellValue((整数)obj);
}
}
尝试
{
//在文件系统中编写工作簿
FileOutputStream out=新的FileOutputStream(新文件(“howtodoinjava_demo.xlsx”);
练习册。写(出);
out.close();
System.out.println(“howtodoinjava_demo.xlsx已成功写入磁盘”);
} 
捕获(例外e)
{
e、 printStackTrace();
}