1,导入maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
2,构造Excel
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ExcelUtils {
/**
* 生成Excel
* @param footerNumber 工作簿编号
* @param footerName 工作簿名称
* @param rowTitle 行标题
* @param rowData 行数据
*/
public XSSFWorkbook createExcel(int footerNumber, String footerName, List<String> rowTitle, List<String[]> rowData) {
XSSFWorkbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("0");
for (int i = 0; i < 9; i++) {
sheet.setColumnWidth(i, 4300);
}
/**
* 单元格 样式
*/
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中
/**
* 标题样式 样式
*/
XSSFFont titleFont = wb.createFont();
titleFont.setFontHeight(24);
titleFont.setBold(true);
CellStyle titleCellStyle = wb.createCellStyle();
titleCellStyle.setBorderTop(BorderStyle.THIN);
titleCellStyle.setBorderBottom(BorderStyle.THIN);
titleCellStyle.setBorderLeft(BorderStyle.THIN);
titleCellStyle.setBorderRight(BorderStyle.THIN);
titleCellStyle.setTopBorderColor(HSSFColor.BLACK.index);
titleCellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
titleCellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
titleCellStyle.setRightBorderColor(HSSFColor.BLACK.index);
titleCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
titleCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中
titleCellStyle.setFont(titleFont);
/**
* 列 标题 在这里插入标题
*/
Row rowLabel = sheet.createRow(0);
for (int j = 0; j < rowTitle.size(); j++) {
Cell cellLabel = rowLabel.createCell(j);
cellLabel.setCellType(CellType.STRING);
cellLabel.setCellStyle(cellStyle);
cellLabel.setCellValue(rowTitle.get(j));
}
/**
* 列 数据 在这里插入数据
*/
for (int i = 0; i < rowData.size(); i++) {
Row rowCheck = sheet.createRow((i + 1));
for (int j = 0; j < rowData.get(i).length; j++) {
Cell cellCheck = rowCheck.createCell(j);
cellCheck.setCellType(CellType.STRING);
cellCheck.setCellStyle(cellStyle);
cellCheck.setCellValue(rowData.get(i)[j]);
}
}
/**
* 页脚
*/
setExcelFooterName(footerName, footerNumber, wb);
return wb;
}
/**
* 设置Excel页脚
*/
public void setExcelFooterName(String customExcelFooterName, int setExcelFooterNumber, XSSFWorkbook wb) {
wb.setSheetName(setExcelFooterNumber, customExcelFooterName);
}
/**
* 输出流 导出Excel到桌面
*/
public void exportOutPutExcel(String exportPositionPath, XSSFWorkbook wb) {
try {
File file = new File(exportPositionPath);
FileOutputStream fileOutputStream = new FileOutputStream(file);
wb.write(fileOutputStream);
fileOutputStream.close();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
public static void main(String[] args) {
List<String> rowTitle = new ArrayList<>();
rowTitle.add("标题1");
rowTitle.add("标题2");
rowTitle.add("标题3");
List<String[]> rowData = new ArrayList<>();
String[] str1 = {"1","2","3"};
rowData.add(str1);
String[] str2 = {"4","5","6"};
rowData.add(str2);
String[] str3 = {"7","8","9"};
rowData.add(str3);
XSSFWorkbook wb = new ExcelUtils().createExcel(0, "kevin", rowTitle, rowData);
new ExcelUtils().exportOutPutExcel("C:\\Users\\Administrator\\Desktop\\ExportExcel.xlsx", wb);
}
}