我在数据库中有一些数据,通过一些JSP和servlet我已经创建了这样一个具有接口的Web应用程序。通过接口,我可以在数据库中选择表的列名,在下一个文本框中键入关键字,并可以搜索那些行包含该特定列中的关键字。我使用引导表以表格格式查看输出。 我希望如果用户单击位于表格底部的保存按钮,则会打开一个弹出窗口,他可以输入名称并选择位置并保存文件。
所有其他内容,例如获取数据和显示数据都没有问题。
答案 0 :(得分:0)
您可以使用HSSFRow将您的jsp列表解析为java中的Excel工作表
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet");
然后你需要为Excel工作表创建一个标题
// FOR HEADERS
HSSFRow rowhead= sheet.createRow((short)0);
rowhead.createCell(0).setCellValue("ID");
rowhead.createCell(1).setCellValue("NAME");
现在,您将根据列表大小填充列中的数据。
//暂停列表
int rownum = 1;
for (YourObject obj : listOfObjects) {
Row row = sheet.createRow(rownum++);
row.createCell(0).setCellValue(obj.getID());
row.createCell(1).setCellValue(obj.getName());
}
将数据写入xls文件
try {
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
workbook.write(outByteStream);
byte[] outArray = outByteStream.toByteArray();
response.setContentType("application/vnd.ms-excel");
response.setContentLength(outArray.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Pragma","cache");
response.setHeader("Cache-Control","private");
response.setHeader("Content-Disposition", "attachment; filename=sample.xls");
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
outStream.close();
System.out.println("Excel written successfully..");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e)
{
e.printStackTrace();
}
希望它有所帮助!!!