POI
来源:互联网 发布:mac全是大写 编辑:程序博客网 时间:2024/05/04 22:55
POI
简单的一个示例:
public String execute() throws Exception {HSSFWorkbook workbook = new HSSFWorkbook(); //创建工作簿对象 HSSFSheet sheet = workbook.createSheet(); //创建工作表对象workbook.setSheetName(0,"商品管理表一"); //设置工作表的名称HSSFRow row = sheet.createRow((short)0); //创建第一行(表头) HSSFCell cell = row.createCell((short) 0); //创建第一个单元格cell.setCellValue("产品名称"); //往单元格写入内容cell = row.createCell((short) 1); //创建第一行的第二个单元格,以此往下...... cell.setCellValue("代号"); cell = row.createCell((short) 2); cell.setCellValue("售价"); cell = row.createCell((short) 3); cell.setCellValue("积分"); cell = row.createCell((short) 4); cell.setCellValue("数量"); //到此,第一行的表头创建完成 List<Produce> list = produceService.showAllProduce(); //从数据库取出数据填充到单元格for(int i=0;i<list.size();i++){row = sheet.createRow((int)i+1); Produce p = list.get(i);row.createCell((short)0).setCellValue(p.getProductname()); // 创建单元格,并设置内容row.createCell((short)1).setCellValue(p.getDaihao());row.createCell((short)2).setCellValue(p.getPrice());row.createCell((short)3).setCellValue(p.getJifen());row.createCell((short)4).setCellValue(p.getQuantity());}try{FileOutputStream fOut = new FileOutputStream("F:/produce.xls"); // 将文件存到指定位置workbook.write(fOut);fOut.flush();fOut.close();}catch(Exception e){e.printStackTrace();}HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("message", "系统提示:导出Excel成功!");return SUCCESS;}
使用POI解析Excel2003和2007:
Ø 解析2003版本的Excel用HSSF类型的对象;
Ø 解析2007版本的Excel用XSSF类型的对象;
API
workBook.getNumberOfSheets() //获取工作表个数
HSSFSheet sheet = workBook.getSheetAt(noSheet); //获取第几个工作表
int nRows = sheet.getPhysicalNumberOfRows(); //获取Excel表格的行数
row.getLastCellNum(); // 获得列数
cell.getCellType(); //获取单元格格式
在读取每一个Cell的值的时候,通过getCellType方法获得当前Cell的类型,在Excel中Cell有6种类型,如下面所示。
- CELL_TYPE_BLANK 空值
- CELL_TYPE_BOOLEAN 布尔型
- CELL_TYPE_ERROR 错误
- CELL_TYPE_FORMULA 公式型
- CELL_TYPE_STRING 字符串型
- CELL_TYPE_NUMERIC 数值型
如果Cell的Type为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以Double类型的数字存储的。Excel中的Date表示当前时间与1900年1月1日相隔的天数,所以需要调用HSSFDateUtil的isCellDateFormatted方法,判断该Cell的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一个Java类型的Date。
cell.getNumericCellValue()//返回单元格是数字格式的数值。返回值是double类型。
cell.getStringCellValue() //返回单元格是字符串格式的值。返回值是String类型。对于数字格式的单元格会抛出异常。
cell.getBooleanCellValue()//返回单元格是布尔型格式的值。返回值是boolean类型。
- poi
- POI
- POI
- POI
- POI
- poi
- poi
- POI
- POI
- POI
- poi
- POI
- POI
- poi
- POI
- POI
- POI
- POI
- Java EE 7的发布时间
- 启动报错:java.lang.ClassNotFoundException:
- android 三种网络通信接口及各个接口的代码示例
- Mirosoft.NET Framework 4.0 安装时发生严重错误(已解决)
- SpringMVC介绍之Validation
- POI
- Hadoop版本选择
- Linux后台进程管理
- Object.prototype
- hdu 2017 字符串统计
- Jquery 1.6+ .prop()与.attr()方法比较
- 利用method.invoke(..)解析json
- SQL2012 新增实用函数
- 《创客》第十二章读后整理和感悟