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);