Examination_system/Examination_system-1/.svn/pristine/cc/ccd1f7c471e7e31b03c46c42fa1...

178 lines
7.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.bonus.exp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
@SuppressWarnings("deprecation")
public class POIOutputHelperFinanceStorage {
public static HSSFWorkbook excel(List<Map<String, Object>> result, List<String> list, String filename) {
// 获取工作簿对象
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFCellStyle tittleStyle = createTittleStyle(workbook);
HSSFCellStyle headerStyle = createHeaderStyle(workbook);
HSSFCellStyle contentStyle = createCellStyle(workbook);
String sheetName = filename;
sheet.setDefaultColumnWidth(15);
HSSFRow row;
workbook.setSheetName(0, sheetName);
HSSFCell cell;
int nColumn = list.size();
HSSFRow row3 = sheet.createRow(0);
row3.setHeight((short) 800);
HSSFCell tempCell1 = row3.createCell(0);
tempCell1.setCellValue(sheetName);
tempCell1.setCellStyle(tittleStyle);
sheet.addMergedRegion(new CellRangeAddress(0, 0,0,(short) (nColumn - 1)));
//第一行
HSSFRow row1 = sheet.createRow(1);
row1.setHeight((short) 400);
String[] row_second1 = {"序号", "设备名称", "规格型号", "单位", "单价","经办人","上月结余","","本月购入","","本月发出","","本月结余","","备注"};
for (int h = 0; h < row_second1.length; h++) {
HSSFCell tempCell = row1.createCell(h);
tempCell.setCellValue(row_second1[h]);
tempCell.setCellStyle(headerStyle);
}
int ii = 2;
row = sheet.createRow((short) ii);
//row.setHeightInPoints(20);
for (int j = 0; j < nColumn; j++) {
cell = row.createCell((short) j);
if (list.get(j) != null) {
cell.setCellStyle(headerStyle);
cell.setCellValue(list.get(j));
} else {
cell.setCellStyle(headerStyle);
cell.setCellValue("");
}
if(j>=0 && j<6 ||j==14) {
sheet.addMergedRegion(new CellRangeAddress(1, 2, j, j));
}
}
sheet.addMergedRegion(new CellRangeAddress(1, 1, 6, 7));
sheet.addMergedRegion(new CellRangeAddress(1, 1, 8, 9));
sheet.addMergedRegion(new CellRangeAddress(1, 1, 10, 11));
sheet.addMergedRegion(new CellRangeAddress(1, 1, 12, 13));
ii++;
for (int i = 0; i < result.size(); i++) {
Map<String, Object> resulttrow = result.get(i);
List<Object> rowdata = map2List(resulttrow);
row = sheet.createRow((short) ii);
row.setHeightInPoints(15);
for (int j = 0; j < nColumn; j++) {
cell = row.createCell((short) j);
if (rowdata.get(j) != null) {
Object data = rowdata.get(j);
Boolean isNum = false;//data是否为数值
if (data != null || "".equals(data)) {
//判断data是否为数值型
isNum = data.toString().matches("^(-?\\d+)(\\.\\d+)?$");
}
//如果单元格内容是数值类型则设置cell的类型为数值型设置data的类型为数值类型
if (isNum ) {
// 设置单元格内容为double类型
cell.setCellValue(Double.parseDouble(data.toString()));
//contentStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));//保留两位小数点
// HSSFDataFormat df = workbook.createDataFormat(); //此处设置数据格式  
// contentStyle.setDataFormat(df.getFormat("0.000")); //小数点后保留两位可以写contentStyle.setDataFormat(df.getFormat("#,#0.00"));  
// 设置单元格格式
cell.setCellStyle(contentStyle);
} else {
cell.setCellStyle(contentStyle);
// 设置单元格内容为字符型
cell.setCellValue(data.toString());
}
} else {
cell.setCellStyle(contentStyle);
cell.setCellValue("");
}
}
ii++;
}
return workbook;
}
public static List<Object> map2List(Map<String, Object> map) {
// 将Map Key 转化为List
List<Object> mapValuesList = new ArrayList<Object>(map.values());
return mapValuesList;
}
public static HSSFCellStyle createTittleStyle(HSSFWorkbook workbook){
HSSFCellStyle tittleStyle = workbook.createCellStyle();
tittleStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直居中
tittleStyle.setAlignment(CellStyle.ALIGN_CENTER);// 水平居中
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 16);// 设置字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置加粗
tittleStyle.setWrapText(true);
tittleStyle.setFont(font);
tittleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//填充单元格
tittleStyle.setFillForegroundColor(HSSFColor.WHITE.index);//填充颜色
tittleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
tittleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
tittleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
tittleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
return tittleStyle;
}
public static HSSFCellStyle createHeaderStyle(HSSFWorkbook workbook){
HSSFCellStyle headerStyle = workbook.createCellStyle();
headerStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直居中
headerStyle.setAlignment(CellStyle.ALIGN_CENTER);// 水平居中
headerStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
headerStyle.setFillForegroundColor(HSSFColor.WHITE.index);
headerStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
headerStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
headerStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
headerStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
Font font = workbook.createFont();
font.setFontHeightInPoints((short)12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// font.setColor(HSSFColor.GREEN.index); //绿字
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headerStyle.setFont(font);
return headerStyle;
}
public static HSSFCellStyle createCellStyle(HSSFWorkbook workbook){
HSSFCellStyle contentStyle = workbook.createCellStyle();
contentStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直居中
contentStyle.setAlignment(CellStyle.ALIGN_CENTER);// 水平居中
contentStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
contentStyle.setFillForegroundColor(HSSFColor.WHITE.index);
contentStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
contentStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
contentStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
contentStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
Font font = workbook.createFont();
font.setFontHeightInPoints((short)10);
font.setColor(HSSFColor.BLACK.index); //黑字
contentStyle.setFont(font);
return contentStyle;
}
}