十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹了Java如何使用POI操作Excel,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
江都網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.apache.poi poi-ooxml-schemas 4.1.0
/** * 讀取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); //通過(guò)指定名稱獲取 XSSFSheet sheet = xssfWorkbook.getSheet("筆記本"); //通過(guò)下標(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ù)類(lèi)型 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 便簽名稱 便簽分類(lèi) 創(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ú)分開(kāi)設(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類(lèi)為合并后的單元格添加邊框 // 下邊框 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的窗口大小,不能無(wú)限制的橫向,縱向拉伸。 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í)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!