POI Excel 08 讀取重寫Excel,單元格中使用\n換行符
阿新 • • 發佈:2019-01-31
@author YHC
讀取Excel和重寫Excel
執行後的效果圖://初始化輸入流 InputStream inp = new FileInputStream("D:/workbook.xls"); //建立讀取對應的檔案生成物件 Workbook wb = WorkbookFactory.create(inp); //得到第0個工作薄 Sheet sheet = wb.getSheetAt(0); //得到第3行 小標從0開始,所以是2 Row row = sheet.getRow(2); //得到第三行第4個單元格 4D 小標從0開始所以是三 Cell cell = row.getCell(3); //檢視該單元格是否定義,如果沒有定義返回NULL //,否則返回一個邏輯上的單元格,如果沒有則建立 //??為什麼需要先判斷為空,因為如果該單元格已經 //存在而且已經定義,如果你在建立,原來的單元格 //將會被你重新建立的單元格覆蓋,這樣做可以節約 //你的空間,因為沒有重新建立物件 if (cell == null) cell = row.createCell(3); //設定單元格的型別是String字串文字型別 cell.setCellType(Cell.CELL_TYPE_STRING); //設定值 cell.setCellValue("a test"); //重新寫如檔案 FileOutputStream fileOut = new FileOutputStream("D:/workbook.xls"); wb.write(fileOut); fileOut.close();
單元格中使用\n 換行符:
執行後的效果圖://建立Excel Workbook wb = new HSSFWorkbook(); //or new XSSFWorkbook(); //建立工作薄 Sheet sheet = wb.createSheet(); //建立行 Row row = sheet.createRow(2); //建立單元格 Cell cell = row.createCell(2); //設定單元格中的值 使用有\n換行符 cell.setCellValue("Use \n with word wrap on to create a new line"); //如果你需要使用換行符,你需要設定 //單元格的樣式wrap=true,程式碼如下: CellStyle cs = wb.createCellStyle(); cs.setWrapText(true); cell.setCellStyle(cs); //增加行的高度以適應2行文字的高度,設定高度單位(畫素) row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints())); //調整該列寬度適應內容 sheet.autoSizeColumn((short)2); //寫入檔案 FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx"); wb.write(fileOut); fileOut.close();
需要jar包:
以上如果有寫錯誤的地方,請大家指出! thanks!!