-
pom引入poi的maven依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency> -
单元格的创建,设置样式和赋值
package com.yl; import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress; @SuppressWarnings("deprecation")
public class Book1 { public static void main(String[] args) {
HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个excel
HSSFSheet sheet = workbook.createSheet("sheet1");// 新建sheet页 HSSFCellStyle cellStyle = workbook.createCellStyle(); // 新建单元格样式
cellStyle.setFillForegroundColor((short) 13);// 设置背景色
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
cellStyle.setWrapText(true);// 设置自动换行 HSSFRow titleRow = sheet.createRow(0);
CellRangeAddress cra1 = new CellRangeAddress(0, 0, 0, 5);
sheet.addMergedRegion(cra1);
titleRow.createCell(0).setCellValue("haha1");
CellRangeAddress cra2 = new CellRangeAddress(0, 0, 6, 11);
sheet.addMergedRegion(cra2);
titleRow.createCell(6).setCellValue("haha2");
CellRangeAddress cra3 = new CellRangeAddress(0, 0, 12, 17);
sheet.addMergedRegion(cra3);
titleRow.createCell(12).setCellValue("haha3");
CellRangeAddress cra4 = new CellRangeAddress(0, 0, 18, 23);
sheet.addMergedRegion(cra4);
titleRow.createCell(18).setCellValue("haha4");
CellRangeAddress cra5 = new CellRangeAddress(0, 0, 24, 29);
sheet.addMergedRegion(cra5); titleRow.createCell(24).setCellValue("haha5"); HSSFRow row = sheet.createRow(1);
// 参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
CellRangeAddress region1 = new CellRangeAddress(1, 5, 0, 5); sheet.addMergedRegion(region1);
HSSFCell cellB1 = row.createCell(0);
cellB1.setCellValue("B1"); CellRangeAddress region2 = new CellRangeAddress(1, 5, 6, 11);
sheet.addMergedRegion(region2);
// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
HSSFCell cellB2 = row.createCell(6);
cellB2.setCellValue("B2"); CellRangeAddress region3 = new CellRangeAddress(1, 5, 12, 17);
sheet.addMergedRegion(region3);
// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
HSSFCell cellB3 = row.createCell(12);
cellB3.setCellValue("B3"); CellRangeAddress region4 = new CellRangeAddress(1, 5, 18, 23);
sheet.addMergedRegion(region4);
// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
HSSFCell cellB4 = row.createCell(18);
cellB4.setCellValue("B4"); // 输出到本地
String excelName = "myExcel.xls";
FileOutputStream out = null;
try {
out = new FileOutputStream(excelName);
workbook.write(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null)
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
out = null;
System.out.println("导出成功");
} } } -
将文件在网页上导出:
// POI导出流文件下载
public static void downloadExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename)
throws IOException {
try {
OutputStream out = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/msexcel;charset=UTF-8");
workbook.write(out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}