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.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import java.util.List;
import java.util.Map;
public class ExcelUtil {
/**
* 生成Excel workbook工具類,後去workbook後,可以直接調用OutputStream out = response.getOutputStream();workbook.write(out);返回
* @param headers
* @param contents
* @return
*/
public static HSSFWorkbook buildExcel(Map<String, String> headers, List<Map<String, String>> contents) {
HSSFWorkbook workbook = new HSSFWorkbook(); // 創建一個excel
HSSFSheet sheet = workbook.createSheet("Sheet1");// 新建sheet頁
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 新建單元格樣式
cellStyle.setFillForegroundColor((short) 13);// 設置背景色
cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
cellStyle.setWrapText(true);// 設置自動換行
//設置標題
HSSFRow titleRow = sheet.createRow(0);
int[] i = {0};
headers.forEach((key, val) -> titleRow.createCell(i[0]++).setCellValue(val));
//設置內容
int row = 1; int[] j = {0};
for (Map<String, String> data : contents) {
HSSFRow hssfRow = sheet.createRow(row++);
j[0] = 0;
headers.forEach((key, v) -> {
String val = data.get(key);
hssfRow.createCell(j[0]++).setCellValue(val);
});
}
return workbook;
}
}
關注公衆號獲取更多內容,有問題也可在公衆號提問哦:
強哥叨逼叨
叨逼叨編程、互聯網的見解和新鮮事