Excel 主要有两种格式,xls和xlsx, xls 为2003版及以下Excel,xlsx为2007版及以上Excel。
Apache POI 提供相对应的HSSF和XSSF对应。
对于一个Excel来说,有哪些基本的构成呢?
Sheet:搜了一下叫工作表。Excel可以有多个Sheet。
Row :行
Cell:单元格
Column:列
可以用POI 做什么呢?
功能不外乎对上面的那些基本构成的增删查改了,Excel还可以设置字体颜色,大小等等。
代码都使用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);