poi解析Excel,格式化日期类型
来源:互联网 发布:重庆猪八戒网络 编辑:程序博客网 时间:2024/05/17 13:39
/** * 解析excel * * @param fileName */public void parseExcelFile(String fileName) {// String fileName = System.getProperty("user.dir") +// "\\resources\\excelParse.xlsx";InputStream in = null;try {in = new FileInputStream(fileName);XSSFWorkbook workBook = new XSSFWorkbook(in);int sheetNum = workBook.getNumberOfSheets();XSSFSheet sheet = workBook.getSheetAt(sheetNum);sheetNum--;int rowNum = sheet.getLastRowNum();if (rowNum > 0) {for (int i = 0; i < rowNum; i++) {XSSFRow row = sheet.getRow(rowNum);if (row != null) {int cellNum = row.getLastCellNum();for (int j = 0; j < cellNum; j++) {XSSFCell cell = row.getCell(cellNum);String cellValue = getCellValue(cell);}}}}} catch (Exception e) {e.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}}/** * 获取单元格的值 * * @param hcell * @return */private String getCellValue(XSSFCell hcell) {String value = null;if (null != hcell) {switch (hcell.getCellType()) {// 单元格是函数计算出来的数据case HSSFCell.CELL_TYPE_FORMULA:try {value = String.valueOf(hcell.getNumericCellValue());} catch (Exception e) {value = String.valueOf(hcell.getRichStringCellValue());}break;// 单元格是数字类型的case HSSFCell.CELL_TYPE_NUMERIC:// 获取单元格的样式值,即获取单元格格式对应的数值int style = hcell.getCellStyle().getDataFormat();// 判断是否是日期格式if (HSSFDateUtil.isCellDateFormatted(hcell)) {Date date = hcell.getDateCellValue();// 对不同格式的日期类型做不同的输出,与单元格格式保持一致switch (style) {case 178:value = new SimpleDateFormat("yyyy'年'M'月'd'日'").format(date);break;case 14:value = new SimpleDateFormat("yyyy/MM/dd").format(date);break;case 179:value = new SimpleDateFormat("yyyy/MM/dd HH:mm").format(date);break;case 181:value = new SimpleDateFormat("yyyy/MM/dd HH:mm a ").format(date);break;case 22:value = new SimpleDateFormat(" yyyy/MM/dd HH:mm:ss ").format(date);break;default:break;}} else {switch (style) {// 单元格格式为百分比,不格式化会直接以小数输出case 9:value = new DecimalFormat("0.00%").format(hcell.getNumericCellValue());break;// DateUtil判断其不是日期格式,在这里也可以设置其输出类型case 57:value = new SimpleDateFormat(" yyyy'年'MM'月' ").format(hcell.getDateCellValue());break;default:value = String.valueOf(hcell.getNumericCellValue());break;}}break;// 单元格是字符串类型的case HSSFCell.CELL_TYPE_STRING:value = String.valueOf(hcell.getRichStringCellValue());break;}}return value;}
1、这个解析的是07版的excel,03版的类似,只不过对象不一样,03版的是HSSF*。
2、这里只对单元格是否是函数、数字、字符串类型做了判断,还有boolean等类型。单元格的每一个格式都有一个样式值与其对应,这样就可以使输出的格式与单元格的格式一致啦。
3、对日期做格式化的时候,要写对标记,我之前写的月份是mm,连26月都出来了,换成MM就可以啦。4、excel中还有一种日期格式是“二〇〇一年三月十四日”,还没弄出来怎么格式化出来。
- poi解析Excel,格式化日期类型
- POI解析excel日期
- 利用poi把数据保存excel,并格式化日期实例
- 利用poi把数据保存excel,并格式化日期实例
- poi格式化,及excel的简单类型设值
- poi操作officePOI操作excel中的数据格式(日期类型)
- POI处理Excel中的日期类型的单元格
- poi解析excel读取日期为数字的问题
- 用POI上传EXCEL表格 日期解析问题
- POI Excel 01之新建Excel,创建工作簿,格式化单元格日期
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
- java通过poi读取excel中的日期类型数据或自定义类型日期
- 格式化字符串,日期类型格式化
- POI解析Excel
- POI 解析Excel
- 使用poi解析Excel
- 使用poi解析Excel
- tomcat下载,安装及闪一下启动不了的问题
- jQuery插件开发全解析
- ASIHTTPRequest-详解
- Crixalis's Equipment
- 爱加密航APP进入安全快车道
- poi解析Excel,格式化日期类型
- Handler、HandlerThread和AsyncQueryHandler
- 『C/C++』公有继承,私有继承,和保护继承
- 特别备注:NSData可能会引起内存增长,尤其是在线程,就算用了NSAutoReleasePool也不管用
- CSS3 选择器
- 使用Dom4j解析XML
- 自写登录页面空间水平、垂直居中xml配置文件
- python中startswith与endswith方法
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File