一、API介绍
Hssfsheet是基于Apache POI的一个操作Excel的工具,它提供了许多API,方便我们对Excel进行读写操作。下面我们来介绍一些常用的API。
1、创建sheet对象
HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个Excel文件 HSSFSheet sheet = workbook.createSheet(); //创建一个sheet对象
上面的代码创建了一个空的Excel文件和一个sheet对象。
2、设置行高、列宽
我们可以通过HSSFRow的setHeight()方法设置行高,通过HSSFSheet的setColumnWidth()方法设置列宽:
HSSFRow row = sheet.createRow(0); //创建第一行 row.setHeight((short) (20*20)); //设置行高,单位为1/20个点 sheet.setColumnWidth(0, 4000); //设置第一列宽度,单位为1/256个字符大小
3、单元格操作
我们可以通过HSSFCell的setCellValue()方法设置单元格内容,通过HSSFCellStyle设置单元格样式,包括字体、颜色等:
HSSFCellStyle style = workbook.createCellStyle(); //创建单元格样式对象 style.setAlignment(HorizontalAlignment.CENTER); //设置水平居中对齐 style.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直居中对齐 HSSFCell cell = row.createCell(0); //创建第一列第一行单元格 cell.setCellValue("Hello"); //设置单元格内容 cell.setCellStyle(style); //应用样式
4、合并单元格
我们可以通过HSSFSheet的addMergedRegion()方法来合并单元格:
CellRangeAddress region = new CellRangeAddress(0, 1, 0, 1); //合并第一行第一列到第二行第二列 sheet.addMergedRegion(region);
二、hssfsheet getrow null操作
当我们获取一个不存在的行时,hssfsheet.getRow()方法会返回null。如果我们对这个null对象进行操作,就会报NullPointerException异常。为了避免这种情况,我们可以通过判空的方式来做容错处理:
HSSFRow row = sheet.getRow(0); if(row == null) { row = sheet.createRow(0); }
三、hssfsheet删除行
我们可以通过HSSFSheet的removeRow()方法来删除指定的行:
HSSFRow row = sheet.getRow(0); sheet.removeRow(row); //删除第一行
四、hssfsheet设置列宽
我们可以通过HSSFSheet的setColumnWidth()方法来设置指定列的宽度:
sheet.setColumnWidth(0, 4000); //设置第一列宽度为4000
五、hssfsheet合并单元格
我们可以通过HSSFSheet的addMergedRegion()方法来合并单元格:
CellRangeAddress region = new CellRangeAddress(0, 1, 0, 1); //合并第一行第一列到第二行第二列 sheet.addMergedRegion(region);
六、hssfsheet获取总行数不准
HSSFSheet的getLastRowNum()方法用于获取最后一行的行数。但是这个方法获取的行数不准确,因为有些行并没有数据,但是仍然被计算在内。为了精确地获取行数,我们可以遍历所有行,逐个判断是否为空行,然后再累加非空行的个数:
int count = 0; for(int i=0; i<=sheet.getLastRowNum(); i++) { HSSFRow row = sheet.getRow(i); if(row != null) { count++; } }
七、hssfsheet单元格加边框
我们可以通过HSSFCellStyle来设置单元格的边框样式,包括线条粗细、颜色等:
HSSFCellStyle style = workbook.createCellStyle(); style.setBorderTop(BorderStyle.THIN); //上边框线条粗细 style.setBorderBottom(BorderStyle.THIN); //下边框线条粗细 style.setBorderLeft(BorderStyle.THIN); //左边框线条粗细 style.setBorderRight(BorderStyle.THIN); //右边框线条粗细 HSSFCell cell = row.createCell(0); cell.setCellValue("Hello"); cell.setCellStyle(style);
八、hssfsheet autosizecolumn
我们可以通过HSSFSheet的autoSizeColumn()方法来自动调整列宽,使内容全部可见:
sheet.autoSizeColumn(0); //自动调整第一列宽度
结语
本文介绍了Hssfsheet的一些常用API,包括创建sheet对象、设置行高、列宽、单元格操作、合并单元格、删除行、单元格加边框、自动调整列宽等。通过使用这些API,我们可以方便地对Excel进行读写操作,实现各种实用的功能。