寻梦的男孩http://www.xupei.tk/?post=11
主要对象:java
HSSFWorkbook | excel的文档对象 |
HSSFSheet | excel的表单Sheet |
HSSFRow | excel的行 |
HSSFCell | excel的单元格 |
HSSFFont | excel字体 |
HSSFDataFormat | 日期格式 |
HSSFHeader | sheet头 |
HSSFFooter | sheet尾(只有打印的时候才能看到效果)和这个样式 |
HSSFCellStyle | cell样式 |
HSSFDateUtil | 日期 |
HSSFPrintSetup | 打印 |
HSSFErrorConstants | 错误信息表 |
经过usermodel读取文件
首先建立一个InputStream,而后建立一个HSSFWorkbook:
apache
InputStream myxls = new FileInputStream("workbook.xls")); HSSFWorkbook wb = new HSSFWorkbook(myxls);
有了 HSSFWorkbook 实例,接下来就能够提取工做表、工做表的行和列,例如:
HSSFSheet sheet = wb.getSheetAt(0); // 第一个工做表 HSSFRow row = sheet.getRow(2); // 第三行 HSSFCell cell = row.getCell((short)3); // 第四个单元格
上面这段代码提取出第一个工做表第三行第四单元格。利用单元格对象能够得到它的值,提取单元格的值时请注意它的类型:
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { ("单元格是字符串,值是: " + cell.getStringCellValue()); } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { ("单元格是数字,值是: " + cell.getCellValue()); } else () { ("单元格的值不是字符串或数值。"); }
实例:
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; public class main { public static void main(String[] args){ try { InputStream input = new FileInputStream("D:\\接口.xls"); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); // Iterate over each row in the sheet Iterator<Row> rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); System.out.println("Row #" + row.getRowNum()); // Iterate over each cell in the row and print out the cell"s // content Iterator<Cell> cells = row.cellIterator(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); System.out.println("Cell #" + cell.getCellNum()); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: System.out.println(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_STRING: System.out.println(cell.getStringCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println("unsuported sell type"); break; } } } } catch (IOException ex) { ex.printStackTrace(); } } }
寻梦的男孩http://www.xupei.tk/?post=11