/**
* 导出Excel
* @param projectId
* @param response
* @return
* @throws ParseException
*/
@GetMapping("/exportProject")
public String exportCountTempData(Integer id, HttpServletResponse response) throws ParseException {
HSSFWorkbook workbook = null;
List<ProjectCode> list = codeService.selectExport(id);
String fileName = "data";
OutputStream fos = null;
try {
workbook = new HSSFWorkbook();
response.setContentType("octets/stream");
if (!list.isEmpty()) {
fileName = "fangfang" + list.get(0).getProjectName() + "链接";
}
//解决中文名乱码
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes(),"iso-8859-1") + ".xls");
fos = response.getOutputStream();
HSSFSheet sheet = workbook.createSheet();
String[] label = {"项目名称", "渠道名称", "渠道分类", "链接"};
// 在索引0的位置创建行(最顶端的行)
HSSFRow row1 = sheet.createRow((short) 0);
HSSFCell cell1 = null;
int columnNum = label.length;
// 将列头设置到sheet的单元格中
for (int n = 0; n < columnNum; n++) {
// 创建列头对应个数的单元格
cell1 = row1.createCell(n);
// 设置列头单元格的数据类型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
// 设置列头单元格的值
cell1.setCellValue(label[n]);
}
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
ProjectCode entity = list.get(i);
String projectName = entity.getProjectName();
String channelDescribe = entity.getChannelDescribe();
String channelName = entity.getChannelName();
String urlString = entity.getProjectId() + "/" + entity.getDomainName();
String arr[] = {projectName, channelDescribe, channelName, urlString};
HSSFRow row = sheet.createRow(i + 1);
for (int j = 0; j < columnNum; j++) {
HSSFCell cell = row.createCell(j, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(arr[j]);
}
}
}
// 将workbook对象输出到文件test.xls
workbook.write(fos);
if (workbook != null) {
workbook.write(response.getOutputStream());
}
} catch (Exception e) {
log.error("数据导出失败", e);
} finally {
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
spring mvc导出数据到Excel
最新推荐文章于 2024-08-03 14:12:41 发布