大概07年9月份左右,工作大量用到poi处理表格,通过表格进行数据更新插入,以及数据生成表格等操作,在这里进行总结,并在下一章总结对word文档的操作
0.首先在excle文件中: HSSFWorkbook是操作Excel2003以前(包括2003)的版本,扩展名是.xls
XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx,这里只以这个为例
表格文件操作较为容易,因为都是一个单元格(Cell)为单位,很容易选中进行处理。
1.实例化表格对象常见两种方式:
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputstream); //使用文件流
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(path); //通过文件路径
2. 然后可以通过xssfWorkbook.getNumberOfSheets() 获得共有多少sheet页,来进行遍历sheet页
我这边只有一个sheet页所以通过XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0); 拿到第一个sheet对象(getSheetAt(index)方法),也可以通过xssfSheet .createSheet("新sheet名称"); 自行创建sheet页。
3.通过 int num = xssfSheet.getLastRowNum();// 获得共有几行数据,然后遍历获取每行数据
XSSFRow row = ws.getRow(i)拿到sheet页的第几行 或者row.createRow(i) 自己创建行
一般有几列自己心里都有数。。。然后就可以在该行通过列拿到单元格
4.XSSFCell cell = row.getCell(i)获取单元格对象,或者row.createCell(i)自行创建单元格。cell.setCellValue给设值
5.还有一些其他辅助工具方法
1.单元格文字样式 只列举常用
XSSFCellStyle style = xssfWorkbook .createCellStyle();创建样式对象
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); 设置文字居中
XSSFFont font = xssfWorkbook .createFont();创建文字格式对象
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 设置文字加粗
style.setFont(font); 将文字加粗样式添加到style
cell.setCellStyle(style); 给单元格设置最终样式
2.数据类型处理
Date date = cell.getDateCellValue();来指定要获取得数据为日期类型,否则可能会乱转换。
cell.setCellStyle(Cell.CELL_TYPE_STRING)来制定该单元格数据类型为string否则可能取到浮点小数,造成取出数据有误。
来源:oschina
链接:https://my.oschina.net/u/2871960/blog/1624445