歸納總結 java excel 操作:
1.設定不顯示excel網格線
sheet.setDisplayGridlines(false);其中sheet是Sheet對象
2.設定excel儲存格中的內容換行
cellStyle.setWrapText(true);其中cellStyle是WorkBook建立的CellStyle對象,然後將cellStyle設定到要換行的Cell對象,最後在要換行的對象(一般為字串)加入"/r/n"。如
topTile.append("/r/n" +"cellContent");
3.儲存格的合并
sheet.addMergedRegion(new CellRangeAddress(0, 4, 0, 2));本樣本為合并4行2列
4.設定頁首和頁尾的頁數
HSSFHeader header = sheet.getHeader();
header.setCenter("Center Header");
header.setLeft("Left Header");
header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +
HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");
HSSFFooter footer = (HSSFFooter )sheet.getFooter()
footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );
5.使得一個Sheet適合一頁
sheet.setAutobreaks(true);
6.設定放大屬性(Zoom被明確為一個分數,例如下面的75%使用3作為分子,4作為分母)
sheet.setZoom(3,4);
7.設定列印
HSSFPrintSetup print = (HSSFPrintSetup) sheet.getPrintSetup();
print.setLandscape(true);//設定橫向列印
print.setScale((short) 70);//設定列印縮放70%
print.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);//設定為A4紙張
print.setLeftToRight(true);//設置列印順序先行後列,預設為先列行
print.setFitHeight((short) 10);設定縮放調整為10頁高
print.setFitWidth((short) 10);設定縮放調整為寬高
sheet.setAutobreaks(false);
if (i != 0 && i % 30 == 0)
sheet.setRowBreak(i);//設置每30行分頁列印
8.反覆的行和列(設定列印標題)
HSSFWorkbook wb = new HSSFWorkbook();
wb.setRepeatingRowsAndColumns(0, 0, 12, 1, 6);//設定1到12列,行1到6每一頁重複列印
9.調整儲存格寬度
sheet.setAutobreaks(true);
sheet.setColumnWidth((short)i,colsWidth[i]); //設定儲存格長度
sheet.autoSizeColumn((short) i);//自動根據長度調整儲存格長度
java POI Excel樣式
下面是一個建立儲存格樣式的樣本
/**
* 儲存格標題樣式
* */
private static CellStyle getOrderExcelTitleStyle(Workbook workBook){
CellStyle cellStyle = workBook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 設定儲存格字型
Font headerFont = workBook.createFont(); // 字型
headerFont.setFontHeightInPoints((short)12);
headerFont.setFontName("宋體");
cellStyle.setFont(headerFont);
cellStyle.setWrapText(true);
//填充的背景顏色
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFPalette palette = ((HSSFWorkbook) workBook).getCustomPalette();
palette.setColorAtIndex(HSSFColor.LIME.index, (byte)147, (byte)205,(byte)221);
titleStyle.setFillForegroundColor(HSSFColor.LIME.index);//前景色彩
titleStyle.setFillBackgroundColor(HSSFCellStyle.THICK_FORWARD_DIAG);
// 設定儲存格邊框及顏色
cellStyle.setBorderBottom((short)1);
cellStyle.setBorderLeft((short)1);
cellStyle.setBorderRight((short)1);
cellStyle.setBorderTop((short)1);
cellStyle.setWrapText(true);
HSSFPalette cellPalette = ((HSSFWorkbook) workBook).getCustomPalette(); // 建立顏色 這裡建立的是綠色邊框
cellPalette.setColorAtIndex(HSSFColor.GREEN.index, (byte)116, (byte)210,(byte)129); // 設定 RGB
cellStyle.setLeftBorderColor(HSSFColor.GREEN.index); // 設定邊框顏色
cellStyle.setRightBorderColor(HSSFColor.GREEN.index);
cellStyle.setTopBorderColor(HSSFColor.GREEN.index);
cellStyle.setBottomBorderColor(HSSFColor.GREEN.index);
return cellStyle;
}