我是用Apache提供的 POI jar包(也有其他的方法有个jxl也不错,可以去看看),版本太低不支持Excel2007,所以用高点的版本,我用的是poi3.8网上很多自己搜下载
Excel2003 和2007就是一个是HSSFWorkbook一个是XSSFWorkbook其他区别不大,这里主要讲Excel2007了
1、创建Excel
public void createExcel() throws Exception { final String writepath = "d://1.xlsx"; Workbook createwb = new XSSFWorkbook(); FileOutputStream output = new FileOutputStream(writepath); PlayExcel.createWorkbook(createwb, output); }
2、读取Excel
public void readExcel() throws IOException { final String readpath = "d://1.xlsx"; FileInputStream input = new FileInputStream(readpath); Workbook readwb = new XSSFWorkbook(input); PlayExcel.readSheet(readwb); }
3、增删改
sheet.createRow(3).createCell(0).setCellValue("s");//新建一列(4)给第一行赋值s sheet.createRow(3).createCell(0).removeCellComment();//删除 sheet.getRow(1).getCell(1).setCellValue("lol"); sheet.getRow(1).getCell(2).setCellValue("lll"); sheet.getRow(2).getCell(2).setCellValue("rere"); FileOutputStream out = new FileOutputStream("d://1.xlsx");// 把修改后的表格重新写入"d://1.xlsx" xwb.write(out); out.close();
4、获取行列数
String sheetname = sheet.getSheetName().toLowerCase(); // 工作表名称 int rows = sheet.getLastRowNum() + 1;// 获取工作表行数 int cells=sheet.getRow(1).getLastCellNum(); //获取某一行的列数
5、设置宽高
sheet.setColumnWidth((short)column,(short)width); row.setHeight((short)height);
6、根据单元格不同属性返回不同字符串数值
public String getCellStringValue(HSSFCell cell) { String cellValue = ""; switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING://字符串类型 cellValue = cell.getStringCellValue(); if(cellValue.trim().equals("")||cellValue.trim().length()<=0) cellValue=" "; break; case HSSFCell.CELL_TYPE_NUMERIC: //数值类型 cellValue = String.valueOf(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: //公式 cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cellValue = String.valueOf(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_BLANK: cellValue=" "; break; case HSSFCell.CELL_TYPE_BOOLEAN: break; case HSSFCell.CELL_TYPE_ERROR: break; default: break; } return cellValue; }