package com.dy.common.util;
|
|
import org.apache.poi.hssf.usermodel.*;
|
import org.apache.poi.hssf.util.HSSFColor;
|
import org.apache.poi.ss.usermodel.RichTextString;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.RegionUtil;
|
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
|
public abstract class HSSF {
|
|
public HSSFCellStyle createTitleStyle_1(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
if(hasForegroundColor) {
|
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings
|
}else{
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
}
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_NONE);
|
style.setBorderLeft(HSSFCellStyle.BORDER_NONE);
|
style.setBorderRight(HSSFCellStyle.BORDER_NONE);
|
style.setBorderTop(HSSFCellStyle.BORDER_NONE);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
|
font.setColor(HSSFColor.BLACK.index);
|
style.setFont(font);
|
return style ;
|
}
|
public HSSFCellStyle createTitleStyle_2(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
if(hasForegroundColor) {
|
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings
|
}else{
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
}
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_NONE);
|
style.setBorderLeft(HSSFCellStyle.BORDER_NONE);
|
style.setBorderRight(HSSFCellStyle.BORDER_NONE);
|
style.setBorderTop(HSSFCellStyle.BORDER_NONE);
|
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
|
font.setColor(HSSFColor.BLACK.index);
|
style.setFont(font);
|
return style ;
|
}
|
public HSSFCellStyle createTitleStyle_3(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
if(hasForegroundColor) {
|
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings
|
}else{
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
}
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
|
font.setColor(HSSFColor.BLACK.index);
|
style.setFont(font);
|
return style ;
|
}
|
|
|
public HSSFCellStyle createTitleStyle(HSSFWorkbook workbook, boolean hasForegroundColor){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
if(hasForegroundColor) {
|
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings
|
}else{
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
}
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) 11);
|
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
style.setFont(font);
|
return style ;
|
}
|
|
public HSSFCellStyle createContentCenterStyle(HSSFWorkbook workbook){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontHeightInPoints((short) 10);
|
font.setFontName("宋体");
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
|
return style ;
|
}
|
|
public HSSFCellStyle createContentCenterStyleBFH(HSSFWorkbook workbook){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontHeightInPoints((short) 10);
|
font.setFontName("宋体");
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
|
style.setDataFormat(workbook.createDataFormat().getFormat("0.00%"));
|
|
return style ;
|
}
|
public HSSFCellStyle createContentCenterStyle_1(HSSFWorkbook workbook, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
style.setFont(font);
|
|
return style ;
|
}
|
|
|
public HSSFCellStyle createContentLeftStyle(HSSFWorkbook workbook){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontHeightInPoints((short) 10);
|
font.setFontName("宋体");
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
return style ;
|
}
|
|
|
public HSSFCellStyle createContentLeftStyle_1(HSSFWorkbook workbook, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
return style ;
|
}
|
|
|
public HSSFCellStyle createContentRightStyle(HSSFWorkbook workbook){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontHeightInPoints((short) 10);
|
font.setFontName("宋体");
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
return style ;
|
}
|
|
public HSSFCellStyle createContentRightStyle_1(HSSFWorkbook workbook, int fontSize){
|
HSSFCellStyle style = workbook.createCellStyle();// Create a style
|
style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
|
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
style.setWrapText(true);// 自动换行
|
|
HSSFFont font = workbook.createFont();// Create a font
|
font.setFontName("宋体");
|
font.setFontHeightInPoints((short) fontSize);
|
font.setColor(HSSFColor.GREY_80_PERCENT.index);
|
|
style.setFont(font);
|
return style ;
|
}
|
|
public HSSFCell createTitleCell(HSSFSheet sheet, HSSFRow row, String name, int index, Integer width, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);//Create first column cell
|
if(style != null){
|
cell.setCellStyle(style);
|
}
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellValue(new HSSFRichTextString(name));
|
if(width != null){
|
sheet.setColumnWidth(index, width * 1000);
|
}
|
return cell ;
|
}
|
public HSSFCell createTitleCell_1(HSSFSheet sheet, HSSFRow row, String name, int index, Double width, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);//Create first column cell
|
if(style != null){
|
cell.setCellStyle(style);
|
}
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellValue(new HSSFRichTextString(name));
|
if(width != null){
|
sheet.setColumnWidth(index, (int)(width * 1000));
|
}
|
return cell ;
|
}
|
|
public void setMergedRegionStyle(HSSFSheet sheet, CellRangeAddress region, HSSFCellStyle style) {
|
for (int i = region.getFirstRow(); i <= region.getLastRow(); i++) {
|
HSSFRow row = sheet.getRow(i);
|
if (row == null) {
|
row = sheet.createRow(i);
|
}
|
for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) {
|
HSSFCell cell = row.getCell(j);
|
if (cell == null) {
|
cell = row.createCell(j);
|
cell.setCellValue("");
|
}
|
cell.setCellStyle(style);
|
}
|
}
|
}
|
public void setRegionBorder(int border, CellRangeAddress region, HSSFSheet sheet, HSSFWorkbook wb){
|
RegionUtil.setBorderBottom(border,region, sheet, wb);
|
RegionUtil.setBorderLeft(border,region, sheet, wb);
|
RegionUtil.setBorderRight(border,region, sheet, wb);
|
RegionUtil.setBorderTop(border,region, sheet, wb);
|
}
|
|
public HSSFCell createDataDouCell(HSSFRow row, int index, Double value, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);
|
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
|
cell.setCellStyle(style);
|
if(value != null){
|
cell.setCellValue(value);
|
}
|
return cell ;
|
}
|
|
public HSSFCell createDataNumCell(HSSFRow row, int index, Integer value, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);
|
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
|
cell.setCellStyle(style);
|
if(value != null){
|
cell.setCellValue(value);
|
}
|
return cell ;
|
}
|
|
public HSSFCell createDataStrCell(HSSFRow row, int index, String value, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellStyle(style);
|
if(value != null){
|
cell.setCellValue(value);
|
}
|
return cell ;
|
}
|
|
|
public HSSFCell createDataStrCell(HSSFRow row, int index, RichTextString value, HSSFCellStyle style){
|
HSSFCell cell = row.createCell(index);
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellStyle(style);
|
if(value != null){
|
cell.setCellValue(value);
|
}
|
return cell ;
|
}
|
|
|
public HSSFCell[] createTitleCells(int startColIndex, Object[][] tcs, HSSFSheet sheet, HSSFRow row, HSSFCellStyle style){
|
HSSFCell[] cells = new HSSFCell[tcs.length] ;
|
for(int i = 0; i < tcs.length; i++){
|
cells[i] = createTitleCell(sheet, row, (String)tcs[i][0], startColIndex+ i, (Integer)tcs[i][1], style);
|
}
|
return cells ;
|
}
|
public HSSFCell[] createTitleCells_1(int startColIndex, Object[][] tcs, HSSFSheet sheet, HSSFRow row, HSSFCellStyle style){
|
HSSFCell[] cells = new HSSFCell[tcs.length] ;
|
for(int i = 0; i < tcs.length; i++){
|
cells[i] = createTitleCell_1(sheet, row, (String)tcs[i][0], startColIndex+ i, (Double)tcs[i][1], style);
|
}
|
return cells ;
|
}
|
|
public void createContentCells(Object[][] ccs, HSSFRow row){
|
for(int i = 0; i < ccs.length; i++){
|
createDataStrCell(row, i, (String)ccs[i][0], (HSSFCellStyle)ccs[i][1]) ;
|
}
|
}
|
|
|
|
/**
|
* 输入EXCEL文件
|
* @param workbook
|
* @param fileName 文件名
|
*/
|
public boolean outputExcel(HSSFWorkbook workbook, String fileName) {
|
boolean flag = true ;
|
FileOutputStream fos = null;
|
try {
|
fos = new FileOutputStream(new File(fileName));
|
workbook.write(fos);
|
fos.close();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
flag = false ;
|
} catch (IOException e) {
|
e.printStackTrace();
|
flag = false ;
|
}
|
return flag ;
|
}
|
}
|