HSSF為讀取Excel提供了兩類api:usermodel和eventusermodel,其中eventusermodel只支持讀取excel
poi的usermodel中api操作excel的几个对象:
HSSFWorkbook :工作薄对象对应excel文件
HSSFSheet:该对象对应Excel中的一个sheet
HSSFRow:该对象代表Excel中的一行
HSSFCell:代表Excel中的一个单元格
HSSFStyle:带表Excel格式化信息的对象
用poi的HSSF中的usermodel讀取excel文件很簡單:
首先創建一個InputStream輸入流對象
//InputStream in = new FileInputStream("test.xls");
//將輸入流對象以參數傳給HSSFWorkbook的構造方法,并創建一個代表Excel工作薄的HSSFWorkbook對象
HSSFWorkbook wb = new HSSFWorkbook(in);
/*有了HSSFWorkbook的實例后就可以提取工作表,工作表的行和列,下面就是一個例子*/
HSSFSheet sheet = wb.getSheetAt(0);//拿到excel工作薄中的第一張工作表
HSSFRow row = sheet.getRow(1);//拿到當前工作表中的第二行,該索引從0開始表示工作表中第一行
HSSFCell cell = row.getCell((short)2);//工作表當前行的第三個單元格,該索引也是從0開始
//利用上面的這個cell對象可以提取Excel工作薄第一章表(sheet)中的第二行第三個單元格里面的值
if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING){
System.out.println("單元格是字符串,字符串的值是:"+cell.getStringCellValue());
}else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
System.out.println("單元格是數字,值是"+cell.getCellValue());
}else{
Systemt.out.println("單元中不是數字和字符串");
}
通過HSSF中usermodel的api寫入excel文件的步驟
//首先創建一個HSSFWorkbok實例
HSSFWorkbook wb = new HSSFWorkbook();
/*為Excel表中的單元格設置內容*/
HSSFSheet sheet = wb.createSheet();//拿到要寫入的sheet
HSSFRow row = sheet.createRow((short)0);//sheet的第一行
HSSFCell cell =row.createCell((short)0);//第一行第一列
cell.setValue(1);//向第一行第一列寫入數值1
//創建一個輸出流對象
OutputStream out = new FileOutpoutStream("test.xls");
//調用HSSFWorkbook實例的write方法
wb.write(out);
//關閉輸出流
out.flush();
out.close();
下面是設置單元格的樣式
HSSFCellStyle style = wb.createCellStyle();
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
style.setFillBackground(HSSFColor.AQUA.index);