写一个导出excle文件的jsp代码
时间: 2024-03-10 20:43:36 浏览: 113
以下是一个简单的JSP页面,用于从数据库中检索数据并将其导出为Excel文件:
```jsp
<%@ page import="java.io.*,java.sql.*,org.apache.poi.ss.usermodel.*" %>
<%@ page contentType="application/vnd.ms-excel" language="java" %>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%
// 设置响应头,提示浏览器下载文件
response.setHeader("Content-Disposition", "attachment; filename=myfile.xlsx");
// 创建工作簿和工作表对象
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("数据");
// 创建标题行并设置单元格样式
Row headerRow = sheet.createRow(0);
CellStyle headerCellStyle = workbook.createCellStyle();
headerCellStyle.setFillForegroundColor(IndexedColors.BLUE_GREY.getIndex());
headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
headerCellStyle.setAlignment(HorizontalAlignment.CENTER);
Font headerFont = workbook.createFont();
headerFont.setColor(IndexedColors.WHITE.getIndex());
headerFont.setBold(true);
headerCellStyle.setFont(headerFont);
// 添加标题行的单元格
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("ID");
headerCell1.setCellStyle(headerCellStyle);
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("名称");
headerCell2.setCellStyle(headerCellStyle);
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("价格");
headerCell3.setCellStyle(headerCellStyle);
// 从数据库中检索数据并将其填充到工作表中
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
PreparedStatement ps = con.prepareStatement("SELECT * FROM products");
ResultSet rs = ps.executeQuery();
int rowNumber = 1;
while (rs.next()) {
Row row = sheet.createRow(rowNumber++);
row.createCell(0).setCellValue(rs.getInt("id"));
row.createCell(1).setCellValue(rs.getString("name"));
row.createCell(2).setCellValue(rs.getDouble("price"));
}
con.close();
} catch (Exception e) {
out.println(e);
}
// 将工作簿写入输出流,并关闭工作簿
workbook.write(out);
workbook.close();
%>
```
该页面从数据库中检索数据,并将其填充到Excel文件的工作表中。我们使用Apache POI库来创建工作簿和工作表,并将数据填充到单元格中。在上面的示例中,我们使用MySQL数据库,但您可以将其替换为任何其他数据库,只需更改JDBC连接字符串、用户名和密码即可。在JSP页面的顶部,我们设置了响应头,以便浏览器将文件下载到本地计算机。我们还将页面的`contentType`设置为`application/vnd.ms-excel`,以便浏览器知道我们正在发送Excel文件。
阅读全文