public class ExcelUtilStat {
/**
* 合併單元格
*
* @param rowFrom
* @param cellFrom
* @param rowTo
* @param cellTo
* @return
*/
public static Region getRegion(int rowFrom, short cellFrom, int rowTo, short cellTo) {
Region region = new Region(rowFrom, cellFrom, rowTo, cellTo);
return region;
}
/**
* 根據列所在索引位置取得字母
*
* @param cell
* @return
*/
public static String getCellWorld(int cell) {
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int m = ((cell) / 26) - 1;
char a = str.charAt(cell % 26);
return "" + (m == -1 ? "" : str.charAt(m)) + a;
}
/**
* 取得單元格函數 (如MAX,MIN,AVERAGE,STDEVP)等等
*
* @param cellFrom
* 計算的開始列
* @param cellTo
* 計算的結束列
* @param rowFrom
* 第幾行開始
* @param rowTo
* 第幾行結束
* @param function
* Excel函數
* @return
*/
public static String getXToY(int cellFrom, int cellTo, int rowFrom, int rowTo, String function) {
String resultX = getCellWorld(cellFrom) + rowFrom;
String resultY = getCellWorld(cellTo) + rowTo;
String XToY = "";
String x1 = resultX + ":" + resultY;
String x2 = function + "(" + resultX + ":" + resultY + ")";
XToY = function == null ? x1 : x2;
return XToY;
}
/**
* 取得rank公式
*
* @param x
* 計算的列
* @param y
* 列所在的行
* @param yFrom
* 第幾行開始
* @param yTo
* 第幾行結束
* @param function
* Excel函數
* @return
*/
public static String getRank(int x, int y, int yFrom, int yTo, String function) {
String a = getCellWorld(x) + y;
String b = getXToY(x, x, yFrom, yTo, null);
return function + "(" + a + "," + b + "," + 0 + ")";
}
public static void main(String[] args) {
System.out.println(getRank(6, 3, 3, 5, "RANK"));
}
/**
* 取得Normsinv公式, 操作如(M5+NORMSINV(NORMDIST(E3,E6,E7,TRUE))*N5)
*
* @param xm
* 全體平均值的列
* @param xn
* 全體標準差的列
* @param xo
* 委員列
* @param yFrom
* 第幾行
* @param rowTotal
* 數據總行數
* @return
*/
public static String getNormsinv(int xm, int xn, int xo, int yFrom, int rowTotal) {
String m5 = getCellWorld(xm) + yFrom;
String n5 = getCellWorld(xn) + yFrom;
String e3 = getCellWorld(xo) + yFrom;
String e6 = getCellWorld(xo) + (rowTotal + 3);
String e7 = getCellWorld(xo) + (rowTotal + 4);
return m5 + "+NORMSINV(NORMDIST(" + e3 + "," + e6 + "," + e7 + ",TRUE))*" + n5;
}
/**
* 取得標準後名次差異(如:T3-J3)
*
* @param xFrom
* @param xTo
* @param y
* @return
*/
public static String getVariance(int xFrom, int xTo, int y) {
String startStr = getCellWorld(xFrom) + y;
String endStr = getCellWorld(xTo) + y;
return endStr + "-" + startStr;
}
/**
* 設置工作表各列寬度
* @param sheet
* @param width
*/
@SuppressWarnings("deprecation")
public static void setColumnWidth(HSSFSheet sheet, int[] width) {
for (int i = 0; i < width.length; i++) {
sheet.setColumnWidth((short) i, (short) (width[i] * 256));
}
}
/**
* 設置邊框
*
* @param wb
* @return
*/
public static HSSFCellStyle createBorder(HSSFWorkbook wb) {
HSSFCellStyle hcs = wb.createCellStyle();
hcs.setBorderLeft(HSSFCellStyle.BORDER_THIN);
hcs.setBorderRight(HSSFCellStyle.BORDER_THIN);
hcs.setBorderBottom(HSSFCellStyle.BORDER_THIN);
hcs.setBorderTop(HSSFCellStyle.BORDER_THIN);
hcs.setBottomBorderColor(HSSFColor.BLACK.index);
hcs.setTopBorderColor(HSSFColor.BLACK.index);
hcs.setLeftBorderColor(HSSFColor.BLACK.index);
hcs.setRightBorderColor(HSSFColor.BLACK.index);
hcs.setFont(getFont(wb, (short) 12, "新細明體"));
return hcs;
}
/**
* 設置基本單元格格式
*
* @param wb
* @return
*/
public static HSSFCellStyle createBasicHcs(HSSFWorkbook wb) {
HSSFCellStyle normalStyle = createBorder(wb);
normalStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
normalStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
normalStyle.setWrapText(true);
return normalStyle;
}
/**
* 設置邊框
*
* @param wb
* @return
*/
public static HSSFCellStyle createBorder(HSSFCellStyle cellStyle) {
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
return cellStyle;
}
/**
* 設置單元格對齊方式及顏色
*
* @param wb
* @param x
* 水平
* @param y
* 垂直
* @return
*/
public static HSSFCellStyle createBasicHcs(HSSFWorkbook wb, short x, short y, short color) {
HSSFCellStyle normalStyle = createBasicHcs(wb);
normalStyle.setAlignment(x);
normalStyle.setVerticalAlignment(y);
normalStyle.setWrapText(true);
normalStyle.setFillForegroundColor(color);
normalStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
return normalStyle;
}
/**
* 設置單元格顏色
*
* @param wb
* @return
*/
public static HSSFCellStyle createHcs(HSSFWorkbook wb, short color) {
HSSFCellStyle normalStyle = createBasicHcs(wb);
normalStyle.setFillForegroundColor(color);
normalStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
return normalStyle;
}
/**
* 设置字体
*
* @param wb
* @param height
* @param fontName
* @return
*/
public static HSSFFont getFont(HSSFWorkbook wb, short height, String fontName) {
HSSFFont font = wb.createFont();
font.setFontHeightInPoints(height);
font.setFontName(fontName);
return font;
}
/**
* 設置單元格為小數點為兩位
*
* @param wb
* @return
*/
public static HSSFCellStyle createHcsForDataFormat(HSSFWorkbook wb) {
DataFormat format = wb.createDataFormat();
HSSFCellStyle cellStyle = createBorder(wb);
cellStyle.setDataFormat(format.getFormat("#,##0.00"));
return cellStyle;
}
/**
* 設置單元格為小數點為兩位及設置顏色
*
* @param wb
* @param color
* @return
*/
public static HSSFCellStyle createHcsForDataFormat(HSSFWorkbook wb, short color) {
HSSFCellStyle cellStyle = createHcsForDataFormat(wb);
cellStyle.setFillForegroundColor(color);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
return cellStyle;
}
}
分享到:
相关推荐
EasyUIPoI是一款基于Apache POI的Java工具库,专门用于简化Excel的导出操作,尤其在处理模板和合并单元格方面提供了便利。这个库主要适用于那些需要在Web应用中生成Excel报告或导出数据的场景,比如数据分析、报表...
7. **合并单元格**:合并单元格以创建标题或复合单元格。 8. **图表处理**:生成或修改Excel中的图表,根据数据更新图表内容。 了解ExcelUtil的使用方法,可以帮助我们更高效地处理Excel数据,提高开发效率。同时,...
ExcelUtil可能包含了设置单元格样式的功能,如设置字体、颜色、边框、对齐方式、数字格式等。这些功能可以增强Excel文件的可读性和美观性。 6. **多sheet支持** 对于包含多个工作表的Excel文件,ExcelUtil可能...
在实际应用中,"GJP-Example"这个文件可能是ExcelUtil的一个示例项目,包含了使用ExcelUtil进行导入导出操作的具体代码和测试案例。通过查看和运行这些例子,开发者可以更好地理解和学习如何在自己的项目中使用...
- 第二步,调用ExcelUtil提供的静态方法,如`ExcelUtil.readSheetToBeanList(Workbook workbook, Class<T> beanClass)`,传入Workbook对象和目标Bean类,即可得到一个包含所有数据的Bean列表。 ExcelUtil的实现...
1. **读取Excel数据**:它可能提供了方法来读取Excel文件的不同工作表,从指定的单元格获取数据,甚至支持处理复杂的公式和图表。 2. **写入Excel数据**:允许开发者向Excel文件中添加新的行、列或者单元格数据,...
ExcelUtil.java
而"ExcelUtil-release-3.1.6"则是实际的库文件,包含了所有必要的类和资源,可以直接引入到Java项目中使用。 总的来说,ExcelUtil便捷读取工具v3.1.6是Java开发者处理Excel数据的强大工具,尤其适合那些希望提高...
考虑到Excel文件可能包含大量数据,ExcelUtil可能会采用流式处理或者内存优化策略来提高处理大文件时的性能。例如,使用SXSSF(Streaming Usermodel API)可以减少内存占用,因为它只在内存中保留有限的行,其余的...
"ExcelUtil万能读取类兼容03/07"指的是一个Java编程中的类库,设计用于读取不同版本的Excel文件,包括Microsoft Excel 2003(.xls格式)和2007以后的版本(.xlsx格式)。这类工具对于开发人员来说至关重要,因为它们...
封装了excel工具类,只需要几行代码就能实现导入导出功能,适用导出List和List的类型。项目来源于:https://github.com/SargerasWang/ExcelUtil
在Java中,实现Excel导出通常会使用Apache POI库,这是一个强大的API,能处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。`ExcelUtils`中可能会有一个名为`exportExcel()`的方法,它是整个导出流程的...
Excel文件通常以.xlsx或.xls格式存在,包含多张工作表( Worksheets ),每张工作表由行列组成,每个单元格( Cell )可以存储文本、数字、公式或图表等数据。 Apache POI是Apache软件基金会的一个开源项目,它为...