本文目錄一覽:
- 1、java poi怎麼讀取Excel中合併單元格的值?
- 2、java怎麼操作excel合併單元格
- 3、java 導出exce怎麼處理合併單元格
- 4、有關java通過poi處理excle中合併單元格的問題
- 5、poi Java生成excel合併單元格後字體居中
java poi怎麼讀取Excel中合併單元格的值?
獲取合併單元格的值 @param sheet @param row @param column @return。
public String getMergedRegionValue(Sheet sheet, int row, int column) {
int sheetMergeCount = sheet.getNumMergedRegions();
for (int i = 0; i sheetMergeCount; i++) {
CellRangeAddress ca = sheet.getMergedRegion(i);
int firstColumn = ca.getFirstColumn();
int lastColumn = ca.getLastColumn();
int firstRow = ca.getFirstRow();
int lastRow = ca.getLastRow();
if (row = firstRow row = lastRow) {
if (column = firstColumn column = lastColumn) {
Row fRow = sheet.getRow(firstRow);
Cell fCell = fRow.getCell(firstColumn);
return getCellValue(fCell);
}
}
}
return null;
}
java怎麼操作excel合併單元格
利用java操作Excel源東東-jxl.jar讀取前單元格值 String cellValue = cells[k].getContents(); sb.append(cellValue+” “); } } sb.append(“
“); } sb.append(“
“); } } //關閉資源釋放內存 wb.close(); return sb.toString(); } 二.寫入Excel文件格式比文本內容加粗加某些顏色等參考jxlapi同推薦篇錯文章:/developerworks/cn/java/l-javaExcel/?ca=j-t10java 代碼public static void writeExcel(String fileName){ WritableWorkbook wwb = null; try { //首先要使用Workbook類工廠創建寫入工作薄(Workbook)象 wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) { e.printStackTrace(); } if(wwb!=null){ //創建寫入工作表 //WorkbookcreateSheet兩參數第工作表名稱第二工作表工作薄位置 WritableSheet ws = wwb.createSheet(“sheet1”, 0); //面始添加單元格 for(int i=0;i0){ //每工作表進行循環 for(int i=0;iif(breakSheet) break; //前工作錶行數 int rowNum = sheet[i].getRows(); boolean breakRow = false; for(int j=0;jif(breakRow) break; //前行所單元格 Cell[] cells = sheet[i].getRow(j); if(cells!=nullcells.length0){ boolean breakCell = false; //每單元格進行循環 for(int k=0;kif(breakCell) break; //讀取前單元格值 String cellValue = cells[k].getContents(); if(cellValue==null) continue; if(cellValue.contains(keyWord)){ res = true; breakCell = true; breakRow = true; breakSheet = true; } } } } } } //關閉資源釋放內存 wb.close(); return res; } 四.往Excel插入圖片圖標插入圖片實現容易參看代碼:java 代碼public static void insertImg(WritableSheet dataSheet, int col, int row, int width, int height, File imgFile){ WritableImage img = new WritableImage(col, row, width, height, imgFile); dataSheet.addImage(img); } 代碼注釋已經清楚概用再解釋我用程序驗證:java 代碼try { //創建工作薄 WritableWorkbook workbook = Workbook.createWorkbook(new File(“D:/test1.xls”)); //待插入工作表 WritableSheet imgSheet = workbook.createSheet(“Images”,0); //要插入圖片文件 File imgFile = new File(“D:/1.png”); //圖片插入第二行第單元格寬各佔六單元格 insertImg(imgSheet,0,1,6,6,imgFile); workbook.write(); workbook.close(); catch (IOException e) { e.printStackTrace(); catch (WriteException e) { e.printStackTrace(); jxl支持png格式圖片jpg格式gif格式都支持五.插入頁眉頁腳般頁眉頁腳都三部,左,,右三部,利用代碼實現插入頁眉頁腳java 代碼public static void setHeader(WritableSheet dataSheet,String left,String center,String right){ HeaderFooter hf = new HeaderFooter(); hf.getLeft().append(left); hf.getCentre().append(center); hf.getRight().append(right); //加入頁眉 dataSheet.getSettings().setHeader(hf); //加入頁腳 //dataSheet.getSettings().setFooter(hf); } 我用代碼測試該:java 代碼try { //創建工作薄 WritableWorkbook workbook = Workbook.createWorkbook(new File(“D:/test1.xls”)); //待插入工作表 WritableSheet dataSheet = workbook.createSheet(“加入頁眉”,0); ExcelUtils.setHeader(dataSheet, “chb”, “2007-03-06”, “第1頁,共3頁”); workbook.write(); workbook.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } 合併單元格://首先創建sheetWritableSheet sheetWrite=writeWorkbook.createSheet(“sheet名稱”,0);// 單元格(column, row)單元格(column1, row1)進行合併sheetWrite.mergeCells(column, row, column1, row1);java 操作exceljxl加邊框jxl合併單元格,單元格設置單元WritableCellFormat headerFormat = new WritableCellFormat(HEADER_FONT_STYLE);//水平居齊headerFormat.setAlignment(Alignment.CENTRE);//豎直向居齊headerFormat.setVerticalAlignment(VerticalAlignment.CENTRE);//建立標籤參數依:列索引、行索引、內容、格式Label seqLabel = new Label(0, 0, “序號”, headerFormat);//增加單元格sheet.addCell(seqLabel);//合併單元格參數依:列索引、行索引、列索引+需要合併列數、行索引+需要合併行數sheet.mergeCells(0, 0, 0, 1);//設置單元格寬度字符單位sheet.setColumnView(0, “序號”.length() + 10);Label basicInfoLabel = new Label(1, 0, “基本信息”,headerFormat);sheet.addCell(basicInfoLabel);sheet.mergeCells(1, 0, 3, 0);//合併垮3行sheet.mergeCells(1, 1, 1, 3);//合併垮3列label = new Label(0, 1, “蘋);sheet.mergeCells(0,1, 0, 3- 1);//合併垮3列WritableCellFormat cellFormat = new WritableCellFormat();cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);// 垂直居label.setCellFormat(cellFormat);sheet.addCell(label);註:再使cellFormat需要重新NEW WritableCellFormatjava怎麼操作excel合併單元格
java 導出exce怎麼處理合併單元格
mergeCells(a,b,c,d) 單元格合併函數
a 單元格的列號
b 單元格的行號
c 從單元格[a,b]起,向下合併的列數
d 從單元格[a,b]起,向下合併的行數
有關java通過poi處理excle中合併單元格的問題
難點是:第一個單元格為合併單元格,不知道怎麼與第二,第三級菜單對應
方案一:將合併的單元格還原
步驟:
1.獲取合併區域,將合併區域還原,並且還原後的值為之前合併區域值內容。
2.重新按照行讀取即可以。
創建數組做映射,無需生成文件
private void decodeMergeCell(HSSFSheet templateSheet) {
int numMerge = templateSheet.getNumMergedRegions();
CellRangeAddress region = null;
while(numMerge 0){
region = templateSheet.getMergedRegion(0);
if (region.getFirstColumn() == 0 || region.getFirstColumn() == 1) {
HSSFRow row = templateSheet.getRow(region.getFirstRow());
HSSFCell cell = row.getCell(region.getFirstColumn());
String value = cell.getStringCellValue();
templateSheet.removeMergedRegion(0);
for (int j = region.getFirstRow(); j =region.getLastRow(); j++) {
cell = templateSheet.getRow(j).getCell(
region.getFirstColumn());
cell.setCellValue(value);
}
}
numMerge = templateSheet.getNumMergedRegions();
}
poi Java生成excel合併單元格後字體居中
excel表格中合併的單元格內的字居中到兩行之間的位置:
1、選中合併後的單元格
2、在工具菜單欄選擇
格式
在下拉菜單選擇單元格
3、在單元格格式選項卡下面選擇對齊
4、在文本對齊方式中水平對齊
選擇居中,在垂直對齊下面選擇居中。確定。後單元格內的字就會居中到兩行之間的位置了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/289398.html