[java]HSSFWorkbook:读取并转换excel的cell值
2015-07-03 13:31
761 查看
package test.cell; import java.io.FileInputStream; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.NumberToTextConverter; public class TestCell { public static void main(String[] args) throws Exception { DoCell dc = new DoCell(); FileInputStream f = new FileInputStream("C:\\temp\\Book2.xls");//读取流 HSSFWorkbook b = new HSSFWorkbook(f);//建立workbook HSSFSheet s = b.getSheet("Sheet1");//取得sheet for (int i = s.getFirstRowNum(); i <= s.getLastRowNum(); i++) {//循环行 for (int j = 0; j < 2; j++) {//循环列 HSSFCell c = s.getRow(i).getCell(j);//取得cell if(c!=null){ System.out.print(" " + getCellValue(c));//利用getCellValue方法打印值 } } System.out.println(); } } public static String getCellValue(Cell c) { String r=null; if(c==null){ r=""; } switch(c.getCellType()){ case Cell.CELL_TYPE_BLANK://为 空值3 r=""; break; case Cell.CELL_TYPE_BOOLEAN://boolean型4 r=c.getBooleanCellValue()+""; break; case Cell.CELL_TYPE_ERROR://错误 5 r=""; break; case Cell.CELL_TYPE_FORMULA://公式型 2 Workbook wb = c.getSheet().getWorkbook();//取得workbook CreationHelper helper = wb.getCreationHelper();//取得wb的帮助 FormulaEvaluator ev = helper.createFormulaEvaluator();//取得helper的公式计算方法 r=getCellValue(ev.evaluateInCell(c));//调用自身方法,括号里取得cellValue break; case Cell.CELL_TYPE_NUMERIC://数值型 0 if(DateUtil.isCellDateFormatted(c)){//如果是excel日期格式 SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//规定日期格式 Date d = c.getDateCellValue();//取得日期 r = s.format(d);//转换日期格式 }else{ r = NumberToTextConverter.toText(c.getNumericCellValue());//数值的话,转换为String } break; case Cell.CELL_TYPE_STRING://字符串型 1 r=c.getRichStringCellValue().toString();//推荐使用getRichStringCellValue(); //getStringCellValue()为老方法 break; default: r=""; } return r; } }
相关文章推荐
- GreenTeaJUG活动 第16期 性能调优利器——PerfJ
- 南邮JAVA程序设计实验3 流处理程序设计
- struts2的核心和工作原理
- 南邮JAVA程序设计实验1 综合图形界面程序设计
- 《Java课程实习》日志(周四--2)
- Java、Json转换方式之三:Fastjson
- Eclipse里项目名有红叉,但是底下的每一个文件都没有红叉
- Java、Json转换方式之二:Jackson
- java 注解
- 《编程导论(Java)·4.1.3 String》乱码问题
- myeclipse快捷键
- Java中this关键字的几种用法
- 部署java程序脚本
- Java实现经典排序算法及复杂度稳定性分析
- Java、Json转换方式之一:json-lib
- JAVA的JDBC连接与sql操作
- java图片压缩,使用ImageIO代替JPEGImageEncoder
- java字符串特殊替换及无法比较字符问题
- 用Java实现九宫格
- spring jpa data笔记