Excel 主要有兩種格式,xls和xlsx, xls 爲2003版及如下Excel,xlsx爲2007版及以上Excel。apache
Apache POI 提供相對應的HSSF和XSSF對應。api
對於一個Excel來講,有哪些基本的構成呢?app
Sheet:搜了一下叫工做表。Excel能夠有多個Sheet。xss
Row :行ide
Cell:單元格字體
Column:列ui
能夠用POI 作什麼呢?spa
功能不外乎對上面的那些基本構成的增刪查改了,Excel還能夠設置字體顏色,大小等等。code
代碼都使用XSSF相關的包。
xlsx文件的讀取和輸出
// 文件的讀取
Workbook wb = new XSSFWorkbook(new FileInputStream("workbook.xlsx"));
//文件的輸出 try (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) { wb.write(fileOut); }
Sheet相關的操做:建立,獲取
Workbook wb = new XSSFWorkbook(new FileInputStream("workbook.xlsx")); //建立工做表 Sheet sheet = wb.createSheet("new sheet"); //根據名字獲取工做表 Sheet newSheet = wb.getSheet("new sheet"); try (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) { wb.write(fileOut); }
Row相關的操做:建立,獲取
//建立工做簿 Sheet sheet = wb.createSheet("new sheet"); //建立Row Row row = sheet.createRow(0); //獲取Row Row rowFirstRow = sheet.getRow(0);
Cell相關的操做 :建立,獲取,設置Cell內容,設置某一段單元格某部分字體格式
Cell 單元格的類型
數字,字符串,公式,空白,布爾類型,錯誤()
//建立工做簿 Sheet sheet = wb.getSheet("new sheet"); //建立Row Row row = sheet.createRow(0); //建立單元格並設置值 row.createCell(0).setCellValue(new Date()); row.createCell(1).setCellValue(new XSSFRichTextString("123123123")); row.createCell(2).setCellValue(true); //設置字體 Font font = wb.createFont(); font.setColor(IndexedColors.RED.getIndex()); XSSFRichTextString xssfRichTextString = new XSSFRichTextString("0123456789"); // 對012採用字體 xssfRichTextString.applyFont(0,3,font); row.createCell(3).setCellValue(xssfRichTextString);
Column相關的操做 :設置列寬
XSSFSheet sheet = wb.createSheet("規則列表"); // 寬度的單位是字符寬度的1/256 sheet.setColumnWidth(0,255*15);