|
|
|
|
package com.chenxuan.constants;
|
|
|
|
|
|
|
|
|
|
import org.apache.poi.hssf.usermodel.*;
|
|
|
|
|
import org.apache.poi.hssf.util.HSSFColor;
|
|
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
|
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
|
|
|
import org.apache.poi.ss.util.CellRangeAddressList;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* excel util
|
|
|
|
|
* @author Jordan_Li
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public class ExcelUtils {
|
|
|
|
|
public static final String OFFICE_EXCEL_2003_POSTFIX = "xls";
|
|
|
|
|
public static final String OFFICE_EXCEL_2010_POSTFIX = "xlsx";
|
|
|
|
|
public static final String EMPTY = "";
|
|
|
|
|
public static final String POINT = ".";
|
|
|
|
|
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* get path suffix
|
|
|
|
|
*
|
|
|
|
|
* @param path
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String getPostfix(String path) {
|
|
|
|
|
if (path == null || EMPTY.equals(path.trim())) {
|
|
|
|
|
return EMPTY;
|
|
|
|
|
}
|
|
|
|
|
if (path.contains(POINT)) {
|
|
|
|
|
return path.substring(path.lastIndexOf(POINT) + 1, path.length());
|
|
|
|
|
}
|
|
|
|
|
return EMPTY;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cell style
|
|
|
|
|
*
|
|
|
|
|
* @param hssfCell
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@SuppressWarnings({ "static-access" })
|
|
|
|
|
public static String getHValue(HSSFCell hssfCell) {
|
|
|
|
|
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
|
|
|
|
|
return String.valueOf(hssfCell.getBooleanCellValue());
|
|
|
|
|
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
|
|
|
|
|
String cellValue = "";
|
|
|
|
|
if (HSSFDateUtil.isCellDateFormatted(hssfCell)) {
|
|
|
|
|
Date date = HSSFDateUtil.getJavaDate(hssfCell.getNumericCellValue());
|
|
|
|
|
cellValue = sdf.format(date);
|
|
|
|
|
} else {
|
|
|
|
|
DecimalFormat df = new DecimalFormat("#.##");
|
|
|
|
|
cellValue = df.format(hssfCell.getNumericCellValue());
|
|
|
|
|
String strArr = cellValue.substring(cellValue.lastIndexOf(POINT) + 1, cellValue.length());
|
|
|
|
|
if (strArr.equals("00")) {
|
|
|
|
|
cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return cellValue;
|
|
|
|
|
} else {
|
|
|
|
|
return String.valueOf(hssfCell.getStringCellValue());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cell style
|
|
|
|
|
*
|
|
|
|
|
* @param xssfCell
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String getXValue(XSSFCell xssfCell) {
|
|
|
|
|
if (xssfCell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
|
|
|
|
|
return String.valueOf(xssfCell.getBooleanCellValue());
|
|
|
|
|
} else if (xssfCell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
|
|
|
|
|
String cellValue = "";
|
|
|
|
|
if (DateUtil.isCellDateFormatted(xssfCell)) {
|
|
|
|
|
Date date = DateUtil.getJavaDate(xssfCell.getNumericCellValue());
|
|
|
|
|
cellValue = sdf.format(date);
|
|
|
|
|
} else {
|
|
|
|
|
DecimalFormat df = new DecimalFormat("#.##");
|
|
|
|
|
cellValue = df.format(xssfCell.getNumericCellValue());
|
|
|
|
|
String strArr = cellValue.substring(cellValue.lastIndexOf(POINT) + 1, cellValue.length());
|
|
|
|
|
if (strArr.equals("00")) {
|
|
|
|
|
cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return cellValue;
|
|
|
|
|
} else {
|
|
|
|
|
return String.valueOf(xssfCell.getStringCellValue());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* create row data
|
|
|
|
|
*
|
|
|
|
|
* @param currentRow
|
|
|
|
|
*
|
|
|
|
|
* @param textList
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public static void creatRow(HSSFRow currentRow, String[] textList) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (String cellValue : textList) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void creatborderRow(HSSFWorkbook hwb, HSSFRow currentRow,
|
|
|
|
|
String[] textList, HSSFCellStyle unLock, HSSFCellStyle locked) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (String cellValue : textList) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void creatRow(HSSFRow currentRow, Object[] textList) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (Object cellValue : textList) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void creatFlexibleRow(HSSFRow currentRow, String[] textList,
|
|
|
|
|
int beginNum, int endNum) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (int j = beginNum; j < textList.length - endNum; j++) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellValue(textList[j]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void creatFlexibleRow(HSSFRow currentRow, Object[] textList,
|
|
|
|
|
int beginNum, int endNum) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (int j = beginNum; j < textList.length - endNum; j++) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellValue(textList[j].toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void creatFlexibleRow(HSSFRow currentRow, Object[] textList,
|
|
|
|
|
int beginNum, int endNum, int CellNum, String CellValue) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
HSSFCell userNameLableCellT = currentRow.createCell(0);
|
|
|
|
|
userNameLableCellT.setCellValue(CellValue);
|
|
|
|
|
for (int j = beginNum; j < textList.length - endNum; j++) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(CellNum++);
|
|
|
|
|
userNameLableCell.setCellValue(textList[j].toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* create row data with style
|
|
|
|
|
*
|
|
|
|
|
* @param currentRow
|
|
|
|
|
* @param textList
|
|
|
|
|
*/
|
|
|
|
|
public static void creatStyleRow(HSSFRow currentRow, String[] textList,
|
|
|
|
|
HSSFWorkbook workbook) {
|
|
|
|
|
HSSFCellStyle style = workbook.createCellStyle();
|
|
|
|
|
/*style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
|
|
|
|
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
|
|
|
|
style.setFillForegroundColor(HSSFColor.LAVENDER.index);
|
|
|
|
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
|
|
|
|
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
|
|
|
|
style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);
|
|
|
|
|
style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);
|
|
|
|
|
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
|
|
|
|
style.setBorderTop(HSSFCellStyle.BORDER_THIN);*/
|
|
|
|
|
HSSFFont font = workbook.createFont();
|
|
|
|
|
font.setFontName("Verdana");
|
|
|
|
|
font.setColor(HSSFColor.BLUE.index);
|
|
|
|
|
style.setFont(font);
|
|
|
|
|
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (String cellValue : textList) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellStyle(style);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* create row data with no color
|
|
|
|
|
*
|
|
|
|
|
* @param currentRow
|
|
|
|
|
* @param textList
|
|
|
|
|
*/
|
|
|
|
|
public static void creatNoColorRow(Row currentRow, String[] textList,
|
|
|
|
|
Workbook workbook) {
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (String cellValue : textList) {
|
|
|
|
|
Cell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
currentRow.setHeightInPoints(20);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* data valid list
|
|
|
|
|
* @param selectTextList
|
|
|
|
|
* @param naturalRowIndex
|
|
|
|
|
* @param naturalColumnIndex
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DataValidation getDataValidationList(String[] selectTextList,
|
|
|
|
|
int naturalRowIndex, int naturalColumnIndex) {
|
|
|
|
|
DVConstraint constraint = DVConstraint
|
|
|
|
|
.createExplicitListConstraint(selectTextList);
|
|
|
|
|
int firstRow = naturalRowIndex - 1;
|
|
|
|
|
int lastRow = naturalRowIndex - 1;
|
|
|
|
|
int firstCol = naturalColumnIndex - 1;
|
|
|
|
|
int lastCol = naturalColumnIndex - 1;
|
|
|
|
|
CellRangeAddressList regions = new CellRangeAddressList(firstRow,
|
|
|
|
|
lastRow, firstCol, lastCol);
|
|
|
|
|
DataValidation data_validation_list = new HSSFDataValidation(regions,
|
|
|
|
|
constraint);
|
|
|
|
|
return data_validation_list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* data valid list
|
|
|
|
|
*
|
|
|
|
|
* @param formulaString
|
|
|
|
|
* @param naturalRowIndex
|
|
|
|
|
* @param naturalColumnIndex
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DataValidation getDataValidationByFormula(
|
|
|
|
|
String formulaString, int naturalRowIndex, int naturalColumnIndex) {
|
|
|
|
|
DVConstraint constraint = DVConstraint
|
|
|
|
|
.createFormulaListConstraint(formulaString);
|
|
|
|
|
int firstRow = naturalRowIndex - 1;
|
|
|
|
|
int lastRow = naturalRowIndex - 1;
|
|
|
|
|
int firstCol = naturalColumnIndex - 1;
|
|
|
|
|
int lastCol = naturalColumnIndex - 1;
|
|
|
|
|
CellRangeAddressList regions = new CellRangeAddressList(firstRow,
|
|
|
|
|
lastRow, firstCol, lastCol);
|
|
|
|
|
DataValidation data_validation_list = new HSSFDataValidation(regions,
|
|
|
|
|
constraint);
|
|
|
|
|
return data_validation_list;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* create excel name
|
|
|
|
|
* @param workbook
|
|
|
|
|
*
|
|
|
|
|
* @param fistMenuList
|
|
|
|
|
*
|
|
|
|
|
* @param secondMenuList
|
|
|
|
|
*/
|
|
|
|
|
public static void creatExcelNameList(HSSFWorkbook workbook,
|
|
|
|
|
String[] fistMenuList, List<String[]> secondMenuList,
|
|
|
|
|
String hideSheetName, String workForm) {
|
|
|
|
|
Name name;
|
|
|
|
|
name = workbook.createName();
|
|
|
|
|
name.setNameName(workForm);
|
|
|
|
|
if (fistMenuList.length > 0) {
|
|
|
|
|
name.setRefersToFormula(hideSheetName + "!$A$1:$"
|
|
|
|
|
+ intToExcelIndex(fistMenuList.length) + "$1");
|
|
|
|
|
}
|
|
|
|
|
if (null != secondMenuList && secondMenuList.size() > 0) {
|
|
|
|
|
for (int i = 0; i < secondMenuList.size(); i++) {
|
|
|
|
|
String[] secondMenu = (String[]) secondMenuList.get(i);
|
|
|
|
|
name = workbook.createName();
|
|
|
|
|
name.setNameName(secondMenu[0]);
|
|
|
|
|
if (secondMenu.length > 0) {
|
|
|
|
|
name.setRefersToFormula(hideSheetName + "!$B$" + (2 + i)
|
|
|
|
|
+ ":$" + intToExcelIndex(secondMenu.length) + "$"
|
|
|
|
|
+ (2 + i) + "");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* set workbook style
|
|
|
|
|
*
|
|
|
|
|
* @param workbook
|
|
|
|
|
* @date 2016-8-3 14:55:33
|
|
|
|
|
* @author mary_ma
|
|
|
|
|
*/
|
|
|
|
|
public static void setCellStyle(Workbook workbook) {
|
|
|
|
|
CellStyle headstyle = workbook.createCellStyle();
|
|
|
|
|
//居中
|
|
|
|
|
headstyle.setAlignment(HorizontalAlignment.CENTER);
|
|
|
|
|
//垂直
|
|
|
|
|
headstyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
|
|
headstyle.setWrapText(true);
|
|
|
|
|
|
|
|
|
|
Font headfont = workbook.createFont();
|
|
|
|
|
headfont.setFontName("新宋体");
|
|
|
|
|
headfont.setFontHeightInPoints((short)13);
|
|
|
|
|
//headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
|
|
|
|
|
headstyle.setFont(headfont);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void titleStyle(Workbook wb, Row currentRow, XSSFSheet sheet, String name, int lastCol) {
|
|
|
|
|
//标题样式
|
|
|
|
|
XSSFCellStyle titleStyle = (XSSFCellStyle) wb.createCellStyle();
|
|
|
|
|
//居中
|
|
|
|
|
titleStyle.setAlignment(HorizontalAlignment.CENTER);
|
|
|
|
|
//垂直
|
|
|
|
|
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
|
|
Font ztFont = wb.createFont();
|
|
|
|
|
// 设置字体为斜体字
|
|
|
|
|
ztFont.setItalic(false);
|
|
|
|
|
//将字体大小设置为18px
|
|
|
|
|
ztFont.setFontHeightInPoints((short)18);
|
|
|
|
|
//将“宋体”字体应用到当前单元格上
|
|
|
|
|
ztFont.setFontName("宋体");
|
|
|
|
|
//字体加粗
|
|
|
|
|
ztFont.setBold(true);
|
|
|
|
|
titleStyle.setFont(ztFont);
|
|
|
|
|
// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
|
|
|
|
|
Cell cell = currentRow.createCell(0);
|
|
|
|
|
// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, lastCol));
|
|
|
|
|
// 设置单元格内容
|
|
|
|
|
cell.setCellValue(name);
|
|
|
|
|
cell.setCellStyle(titleStyle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* generation hide sheet
|
|
|
|
|
*
|
|
|
|
|
* @param workbook
|
|
|
|
|
* @param hideSheetName
|
|
|
|
|
* @param firstMenuList
|
|
|
|
|
* @param secondMenuList
|
|
|
|
|
*/
|
|
|
|
|
public static void creatHideSheet(HSSFWorkbook workbook,
|
|
|
|
|
String hideSheetName, String[] firstMenuList,
|
|
|
|
|
List<String[]> secondMenuList) {
|
|
|
|
|
HSSFSheet hideselectinfosheet = workbook.createSheet(hideSheetName);
|
|
|
|
|
HSSFRow firstMenuRow = hideselectinfosheet.createRow(0);
|
|
|
|
|
creatRow(firstMenuRow, firstMenuList);
|
|
|
|
|
if (null != secondMenuList && secondMenuList.size() > 0) {
|
|
|
|
|
for (int i = 0; i < secondMenuList.size(); i++) {
|
|
|
|
|
String[] secondMenu = (String[]) secondMenuList.get(i);
|
|
|
|
|
HSSFRow secondMenuRow = hideselectinfosheet.createRow(i + 1);
|
|
|
|
|
creatRow(secondMenuRow, secondMenu);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
workbook.setSheetHidden(workbook.getSheetIndex(hideSheetName), true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* generation cascading drop-down menu
|
|
|
|
|
*
|
|
|
|
|
* @param userinfosheet1
|
|
|
|
|
* @param naturalRowIndex
|
|
|
|
|
*/
|
|
|
|
|
public static void creatAppRow(HSSFSheet userinfosheet1,
|
|
|
|
|
int naturalRowIndex, int firstMenuIndex, int secondMenuIndex,
|
|
|
|
|
String workForm) {
|
|
|
|
|
DataValidation data_validation_list = getDataValidationByFormula(workForm, naturalRowIndex,
|
|
|
|
|
firstMenuIndex);
|
|
|
|
|
userinfosheet1.addValidationData(data_validation_list);
|
|
|
|
|
DataValidation data_validation_list2 = getDataValidationByFormula("INDIRECT($"
|
|
|
|
|
+ intToExcelIndex(firstMenuIndex) + ""
|
|
|
|
|
+ naturalRowIndex + ")", naturalRowIndex,
|
|
|
|
|
secondMenuIndex);
|
|
|
|
|
userinfosheet1.addValidationData(data_validation_list2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* generation non-cascading drop-down menu
|
|
|
|
|
*
|
|
|
|
|
* @param userinfosheet1
|
|
|
|
|
* @param selectTextList
|
|
|
|
|
* @param naturalColumnIndex
|
|
|
|
|
*/
|
|
|
|
|
public static void creatAloneRow(HSSFSheet userinfosheet1,
|
|
|
|
|
String[] selectTextList, int firstRow, int lastRow,
|
|
|
|
|
int naturalColumnIndex) {
|
|
|
|
|
DVConstraint constraint = DVConstraint
|
|
|
|
|
.createExplicitListConstraint(selectTextList);
|
|
|
|
|
int firstCol = naturalColumnIndex - 1;
|
|
|
|
|
int lastCol = naturalColumnIndex - 1;
|
|
|
|
|
CellRangeAddressList regions = new CellRangeAddressList(firstRow,
|
|
|
|
|
lastRow, firstCol, lastCol);
|
|
|
|
|
DataValidation data_validation_list = new HSSFDataValidation(regions,
|
|
|
|
|
constraint);
|
|
|
|
|
userinfosheet1.addValidationData(data_validation_list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* alphabet convert to number
|
|
|
|
|
* @param i
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private static String intToExcelIndex(int i) {
|
|
|
|
|
String s = "";
|
|
|
|
|
|
|
|
|
|
int m = i % 26;
|
|
|
|
|
i = i / 26;
|
|
|
|
|
while (i != 0 || m != 0) {
|
|
|
|
|
if (m == 0) {
|
|
|
|
|
i--;
|
|
|
|
|
m = 26;
|
|
|
|
|
}
|
|
|
|
|
s = (char) (m + (char) ('A') - 1) + s;
|
|
|
|
|
|
|
|
|
|
m = i % 26;
|
|
|
|
|
i = i / 26;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* hide row
|
|
|
|
|
*
|
|
|
|
|
* @param currentRow
|
|
|
|
|
* @param textList
|
|
|
|
|
* @param workbook
|
|
|
|
|
*/
|
|
|
|
|
public static void creatHidenRow(HSSFRow currentRow, String[] textList,
|
|
|
|
|
HSSFWorkbook workbook, boolean isLock) {
|
|
|
|
|
HSSFCellStyle style = workbook.createCellStyle();
|
|
|
|
|
style.setAlignment(HorizontalAlignment.CENTER);
|
|
|
|
|
style.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
|
|
style.setLocked(isLock);
|
|
|
|
|
|
|
|
|
|
if (textList != null && textList.length > 0) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (String cellValue : textList) {
|
|
|
|
|
HSSFCell userNameLableCell = currentRow.createCell(i++);
|
|
|
|
|
userNameLableCell.setCellStyle(style);
|
|
|
|
|
userNameLableCell.setCellValue(cellValue);
|
|
|
|
|
}
|
|
|
|
|
currentRow.setZeroHeight(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* get style
|
|
|
|
|
* @param workbook
|
|
|
|
|
* @param isLock
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static HSSFCellStyle getStyle(HSSFWorkbook workbook, boolean isLock) {
|
|
|
|
|
HSSFCellStyle headStyle = workbook.createCellStyle();
|
|
|
|
|
// headStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
|
|
|
|
// headStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
|
|
|
|
// headStyle.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
|
|
|
|
|
// headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
|
|
|
|
|
// headStyle.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);
|
|
|
|
|
// headStyle.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);
|
|
|
|
|
// headStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
|
|
|
|
|
// headStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
|
|
|
|
|
headStyle.setLocked(isLock);
|
|
|
|
|
headStyle.setWrapText(true);
|
|
|
|
|
return headStyle;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|