导出Excel

    String fileName = "北太渔船生产表"+".xlsx";
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet");
sheet.setDefaultRowHeightInPoints((float) 13.5);
// sheet.setAutobreaks(true);
sheet.setColumnWidth(0, 4554);
sheet.setColumnWidth(1, 3554);
sheet.setColumnWidth(2, 3554);
sheet.setColumnWidth(3, 3297);
sheet.setColumnWidth(4, 7265);
sheet.setColumnWidth(5, 5781);
sheet.setColumnWidth(6, 4352);
sheet.setColumnWidth(7, 7789);

//标题


CellStyle titleCellStyle = createStyles(wb).get("title");
HSSFRow titleRow = sheet.createRow(0);
titleRow.setHeightInPoints((float) 18.75);
HSSFCell titleCell = titleRow.createCell(0);
titleCell.setCellValue("Sample Template for active authorized fishing vessels in the Convention Area");
CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 2, 0, 6);
titleCell.setCellStyle(titleCellStyle);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

//小标题
CellStyle secondTitleCellStyle = createStyles(wb).get("secondTitle");
HSSFRow row = sheet.createRow(3);
HSSFRow rows = sheet.createRow(4);
row.setHeightInPoints((float) 40.5);
rows.setHeightInPoints((float) 94.5);

HSSFCell cell = row.createCell(0);
cell.setCellValue("CompanyName");
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 0, 0);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框


cell = row.createCell(1);
cell.setCellValue("Date Year");
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 1, 1);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = row.createCell(2);
cell.setCellValue("Date Month");
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 2, 2);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = row.createCell(3);
cell.setCellValue("Registered Name"
);
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 3, 3);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = row.createCell(4);
cell.setCellValue("Authorization Number"
);
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 4, 4);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = row.createCell(5);
cell.setCellValue("Vessel Type船舶类型\n" +
"分为:catching vessel 捕捞船;carrier vessel 运输船;searching vessel 科研船;processing vessel 加工船");
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 5, 5);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = row.createCell(6);
cell.setCellValue("Fishing gear"
);
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 6, 6);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框


cell = row.createCell(7);
cell.setCellValue("Period(s) of engagement in fishing activities ");
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(3, 4, 7, 7);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

//插入数据
for(int i = 0; i<list.size(); i++) {
HSSFRow dataRowOne = sheet.createRow(5+4*i);
dataRowOne.setHeightInPoints((float) 15);

cell = dataRowOne.createCell(0);
cell.setCellValue(list.get(i).getCompanyName());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 0, 0);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(1);
cell.setCellValue(list.get(i).getYears());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 1, 1);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(2);
cell.setCellValue(list.get(i).getDateMouth());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 2, 2);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框


cell = dataRowOne.createCell(3);
cell.setCellValue(list.get(i).getRegisteredName());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 3, 3);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(4);
cell.setCellValue(list.get(i).getAuthorizationNumber());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 4, 4);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(5);
String vesselType = list.get(i).getVesselType();
if("1".equals(vesselType)) {
cell.setCellValue("捕捞船");
}else if("2".equals(vesselType)) {
cell.setCellValue("运输船");
}else if("3".equals(vesselType)) {
cell.setCellValue("科研船");
}else if("4".equals(vesselType)) {
cell.setCellValue("加工船");
}
// cell.setCellValue(list.get(i).getVesselType());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 5, 5);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(6);
cell.setCellValue(list.get(i).getFishingGear());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 6, 6);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

cell = dataRowOne.createCell(7);
cell.setCellValue(list.get(i).getTime());
cell.setCellStyle(secondTitleCellStyle);
cellRangeAddress = new CellRangeAddress(5+4*i, 8+4*i, 7, 7);
sheet.addMergedRegion(cellRangeAddress);
setBorderForMergeCell(1, cellRangeAddress, sheet, wb);//设置边框

}

response.reset();
response.setContentType("application/octet-stream; charset=utf-8");
//response.setHeader("Content-Disposition", "attachment; filename="+Encodes.urlEncode(fileName));
response.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
try {
wb.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
posted on 2019-05-13 08:47  阿阿良  阅读(128)  评论(0编辑  收藏  举报