您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java如何使用POI操作Excel,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
<!--操作excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.0</version> </dependency>
/** * 讀取excel */ public static void readExcel() { InputStream inputStream = null; XSSFWorkbook xssfWorkbook = null; try { String past = "/操作excel.xlsx"; inputStream = new FileInputStream(past); xssfWorkbook = new XSSFWorkbook(inputStream); //獲取sheet的個(gè)數(shù) int numberOfSheets = xssfWorkbook.getNumberOfSheets(); //獲取指定的sheet System.out.println(numberOfSheets); //通過指定名稱獲取 XSSFSheet sheet = xssfWorkbook.getSheet("筆記本"); //通過下標(biāo)獲取 XSSFSheet sheetAt = xssfWorkbook.getSheetAt(1); if (sheetAt != null) { //最后一行有數(shù)據(jù)的 int lastRowNum = sheetAt.getLastRowNum(); XSSFRow row; short lastCellNum; XSSFCell cell; for (int i = 0; i <= lastRowNum; i++) { //獲取指定行 row = sheetAt.getRow(i); if (row == null) { continue; } //最后一列有數(shù)據(jù)的 lastCellNum = row.getLastCellNum(); for (int j = 0; j <= lastCellNum; j++) { cell = row.getCell(j); if (cell == null) { continue; } //數(shù)據(jù)類型 CellType cellType = cell.getCellType(); //字符串 if (CellType.STRING == cellType) { System.out.println(cell.toString()); } //數(shù)字 else if (CellType.NUMERIC == cellType) { try { System.out.println(cell.getDateCellValue()); } catch (Exception e) { System.out.println(cell.toString()); } } //…… else { System.out.println(cell.toString()); } } } } } catch (Exception e) { e.printStackTrace(); } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
2 便簽名稱 便簽分類 創(chuàng)建時(shí)間 創(chuàng)建人 擁有人 小明的便簽 學(xué)習(xí)便簽 Tue Sep 03 00:00:00 CST 2019 小明 小明 小明的個(gè)人便簽 個(gè)人便簽 Sun Sep 08 00:00:00 CST 2019 小明 小明
/** * 生成excel */ public static void creatExcel() { XSSFWorkbook xssfWorkbook = new XSSFWorkbook(); //創(chuàng)建一個(gè)sheet XSSFSheet sheet1 = xssfWorkbook.createSheet("第一個(gè)新建的sheet"); //設(shè)置高度和寬度,也可以每行每列單獨(dú)分開設(shè)置 //參數(shù)為字符個(gè)數(shù) sheet1.setDefaultColumnWidth(20); sheet1.setDefaultRowHeight((short) (33 * 20)); //第二個(gè)參數(shù)為字符寬度的1/256 sheet1.setColumnWidth(5, 30 * 256); //設(shè)置單元格樣式 XSSFCellStyle cellStyle = xssfWorkbook.createCellStyle(); // 字體樣式 Font fontStyle = xssfWorkbook.createFont(); fontStyle.setBold(true); // 字體 fontStyle.setFontName("等線"); // 大小 fontStyle.setFontHeightInPoints((short) 11); // 將字體樣式添加到單元格樣式中 cellStyle.setFont(fontStyle); //水平居中 cellStyle.setAlignment(HorizontalAlignment.CENTER); //垂直居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //設(shè)置 單元格填充色 DefaultIndexedColorMap defaultIndexedColorMap = new DefaultIndexedColorMap(); XSSFColor clr = new XSSFColor(defaultIndexedColorMap); byte[] bytes = { (byte) 217, (byte) 217, (byte) 217 }; clr.setRGB(bytes); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); cellStyle.setFillForegroundColor(clr); //設(shè)置單元格不為鎖定,可編輯,反是用了這個(gè)樣式的都可編輯 cellStyle.setLocked(false); //鎖定整個(gè)sheet不可編輯 sheet1.protectSheet("1231312"); //創(chuàng)建一行數(shù)據(jù) XSSFRow row; XSSFCell cell; row = sheet1.createRow(0); cell = row.createCell(0); //設(shè)值 cell.setCellValue("2"); //合并單元格 CellRangeAddress cra = new CellRangeAddress(1, 1, 0, 3); // 起始行, 終止行, 起始列, 終止列 sheet1.addMergedRegion(cra); //設(shè)置合并單元格的樣式 // 使用RegionUtil類為合并后的單元格添加邊框 // 下邊框 RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, cra, sheet1); // 左邊框 RegionUtil.setBorderLeft(BorderStyle.MEDIUM_DASHED, cra, sheet1); row = sheet1.getRow(1); //設(shè)置合并單元格內(nèi)的文本樣式 //但這個(gè)單元格的邊框樣式會(huì)覆蓋上面設(shè)置的合并單元格的樣式 CellUtil.getCell(row, 0).setCellStyle(cellStyle); //設(shè)置單個(gè)單元格的樣式 row = sheet1.createRow(2); cell = row.createCell(0); cell.setCellStyle(cellStyle); //設(shè)置數(shù)據(jù)校驗(yàn) //序列校驗(yàn) String[] strArray = { "星期一", "星期二", "星期三" }; XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet1); XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(strArray); CellRangeAddressList addressList = new CellRangeAddressList(3, 3, 0, 2); XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList); //顯示報(bào)錯(cuò)提示框 validation.setShowErrorBox(true); validation.createErrorBox("錯(cuò)誤提示", "只能選擇指定的內(nèi)容!"); //設(shè)置單元格右側(cè)顯示剪頭符號(hào),顯示可用的選項(xiàng),默認(rèn)為true validation.setSuppressDropDownArrow(true); //顯示提示信息 validation.setShowPromptBox(true); validation.createPromptBox("提示信息", "請(qǐng)選擇星期填入!"); sheet1.addValidationData(validation); //保護(hù)工作薄不可被修改 xssfWorkbook.lockStructure(); //這個(gè)不知道有啥用 xssfWorkbook.lockRevision(); //鎖定excel的窗口大小,不能無限制的橫向,縱向拉伸。 xssfWorkbook.lockWindows(); xssfWorkbook.createSheet("第二個(gè)人sheet"); OutputStream outputStream = null; try { outputStream = new FileOutputStream("/創(chuàng)建excel.xlsx"); xssfWorkbook.write(outputStream); outputStream.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java如何使用POI操作Excel”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。