javaweb实现导出excel前后端代码
时间: 2024-03-11 13:51:07 浏览: 116
以下是使用JavaWeb实现导出Excel的前后端代码示例:
后端代码(使用Apache POI库):
```java
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 从数据库中检索数据
List<User> userList = userDao.getAllUsers();
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("User Data");
// 创建表头行
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Email");
// 填充数据行
int rowNum = 1;
for (User user : userList) {
Row dataRow = sheet.createRow(rowNum++);
dataRow.createCell(0).setCellValue(user.getId());
dataRow.createCell(1).setCellValue(user.getName());
dataRow.createCell(2).setCellValue(user.getEmail());
}
// 设置响应头信息和MIME类型
response.setHeader("Content-Disposition", "attachment; filename=User_Data.xlsx");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
// 将工作簿写入响应流中
try (OutputStream outputStream = response.getOutputStream()) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
```
前端代码(使用jQuery):
```javascript
$('#exportBtn').click(function() {
// 发送AJAX请求到后端导出Excel
$.ajax({
type: 'POST',
url: '/export',
success: function(data) {
// 创建一个Blob对象并下载Excel文件
var blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
var url = URL.createObjectURL(blob);
var link = document.createElement('a');
link.href = url;
link.download = 'User_Data.xlsx';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
});
});
```
注意,此示例仅供参考,实际实现可能因应用程序需求而异。此外,还需要处理异常、安全性和其他方面的问题。
阅读全文