溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

POI的常用方法分享

發(fā)布時(shí)間:2021-08-23 11:15:24 來源:億速云 閱讀:135 作者:chen 欄目:編程語言

這篇文章主要講解了“POI的常用方法分享”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“POI的常用方法分享”吧!


  1. public static void main(String[] args) throws IOException {

  2.         Workbook workbook = new HSSFWorkbook();

  3.         /*==========獲取常用對(duì)象======begin===========

  4.         //讀取文件

  5.         POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("C:/a.xls"));

  6.         //得到Excel工作簿對(duì)象

  7.         Workbook workbook = new HSSFWorkbook(fs);

  8.         //得到工作表對(duì)象

  9.         Sheet sheet = workbook.getSheetAt(0);

  10.         //得到工作表的行

  11.         Row row = sheet.getRow(0);

  12.         //得到指定行的單元格

  13.         Cell cell = row.getCell(0);

  14.         //得到單元格樣式

  15.         CellType cellType = CellType.forInt(cell.getCellType());

  16.         =========獲取常用對(duì)象=========end===========*/


  17.         /*=============建立常用對(duì)象=======begin=======

  18.         //創(chuàng)建工作簿

  19.         Workbook workbook = new HSSFWorkbook();

  20.         //創(chuàng)建工作表

  21.         Sheet sheet= workbook.createSheet("new Sheet");

  22.         //創(chuàng)建行

  23.         Row row = sheet.getRow(0);

  24.         //創(chuàng)建單元格樣式

  25.         CellStyle cellStyle = workbook.createCellStyle();

  26.         //在指定行創(chuàng)建指定樣式的單元格

  27.         row.createCell(0).setCellStyle(cellStyle);

  28.         //在指定行創(chuàng)建含有指定值的單元格

  29.         row.createCell(0).setCellValue(1);

  30.         ===============建立常用對(duì)象=======end========*/


  31.         /*============設(shè)置sheet名稱和單元格內(nèi)容======begin======

  32.         Workbook workbook = new HSSFWorkbook();

  33.         workbook.setSheetName(1, "第一張工作表");

  34.         Cell cell = workbook.createSheet().createRow(0).createCell(0);

  35.         cell.setCellValue("單元格內(nèi)容");

  36.         ============設(shè)置sheet名稱和單元格內(nèi)容=======end======*/


  37.         /*============取得sheet的數(shù)量========begin====

  38.         Workbook workbook = new HSSFWorkbook();

  39.         workbook.getNumberOfSheets();

  40.         ============取得sheet的數(shù)量========end====*/


  41.         //根據(jù)index取得sheet對(duì)象

  42.         Sheet sheet = workbook.getSheetAt(0);

  43.         //取得有效的行數(shù)

  44.         int count = sheet.getLastRowNum();

  45.         //取得一行有效的單元格個(gè)數(shù)

  46.         Row row = sheet.getRow(0);

  47.         row.getLastCellNum();

  48.         //單元格類型的讀寫

  49.         Cell cell = row.getCell(0);

  50.         cell.setCellType(CellType.STRING);//設(shè)置單元格為String類型

  51.         cell.getNumericCellValue();//讀取數(shù)值類型的單元格內(nèi)容


  52.         //設(shè)置列寬 行高

  53.         sheet.setColumnWidth(100, 100);

  54.         row.setHeight((short)100);


  55.         //添加區(qū)域 合并單元格

  56.         sheet.addMergedRegion(new CellRangeAddress(0,3,0,0));

  57.         Row row1 = sheet.createRow(0);

  58.         row1.createCell(0).setCellValue("0");

  59.         row1.createCell(1).setCellValue("1");

  60.         row1.createCell(2).setCellValue("2");

  61.         row1.createCell(3).setCellValue("3");


  62.         //保存Excel文件

  63.         String path = "C:/a.xls";

  64.         FileOutputStream fileOutputStream = new FileOutputStream(path);

  65.         workbook.write(fileOutputStream);


  66.         //常用單元格邊框格式

  67.         CellStyle style = workbook.createCellStyle();

  68.         style.setBorderTop(CellStyle.BORDER_DOTTED);//上邊框

  69.         style.setBorderBottom(CellStyle.BORDER_DOTTED);//下邊框

  70.         style.setBorderLeft(CellStyle.BORDER_THIN);//左邊框

  71.         style.setBorderRight(CellStyle.BORDER_DOTTED);//右邊框


  72.         //設(shè)置字體

  73.         Font font = workbook.createFont();

  74.         font.setFontHeightInPoints((short)11);//設(shè)置字體

  75.         font.setBoldweight(Font.BOLDWEIGHT_NORMAL);//加粗


  76.         //設(shè)置位置

  77.         style.setFont(font);

  78.         style.setAlignment(CellStyle.ALIGN_CENTER);//左右居中

  79.         style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中

  80.         style.setRotation((short)10);//單元格內(nèi)容的旋轉(zhuǎn)的角度


  81.         //設(shè)置

  82.         DataFormat dataFormat = workbook.createDataFormat();

  83.         style.setDataFormat(dataFormat.getFormat("0.00%"));//設(shè)置單元格數(shù)據(jù)格式

  84.         cell.setCellFormula("");//給單元格設(shè)置公式


  85.         //插入圖片

  86.         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

  87.         BufferedImage bufferedImage = ImageIO.read(new File("a.jpg"));

  88.         ImageIO.write(bufferedImage, "jpg", byteArrayOutputStream);


  89.         //自定義顏色

  90.         Font font1 = workbook.createFont();

  91.         font1.setColor(HSSFColor.RED.index);

  92.         style.setFont(font1);

  93.         cell.setCellStyle(style);


  94.     }

點(diǎn)擊(此處)折疊或打開

  1. /*=================根據(jù)單元不同屬性返回字符串?dāng)?shù)值========begin============*/

  2.     public String getCellStringValue(Cell cell){

  3.         String cellValue = "";

  4.         switch (CellType.forInt(cell.getCellType())){

  5.             case _NONE:

  6.                 break;

  7.             case NUMERIC:

  8.                 cellValue = String.valueOf(cell.getNumericCellValue());

  9.                 break;

  10.             case STRING:

  11.                 cellValue = cell.getStringCellValue();

  12.                 if (cellValue.trim().equals("") || cellValue.trim().length() <= 0){

  13.                     cellValue = "";

  14.                 }

  15.                 break;

  16.             case FORMULA:

  17.                 cell.setCellType(CellType.NUMERIC);

  18.                 cellValue = String.valueOf(cell.getNumericCellValue());

  19.                 break;

  20.             case BLANK:

  21.                 cellValue = "";

  22.                 break;

  23.             case BOOLEAN:

  24.                 break;

  25.             case ERROR:

  26.                 break;

  27.         }

  28.         return cellValue;

  29.     }

  30.     /*=================根據(jù)單元不同屬性返回字符串?dāng)?shù)值========end============*/

感謝各位的閱讀,以上就是“POI的常用方法分享”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)POI的常用方法分享這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(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)容。

poi
AI