今天碰到一个问题,就是jxl读取日期类型数据时,数据类型变成了Number类型。
当然,还有一个类型为Date类型。
二者区别如下:
2014年12月25日
2014-12-25
现,相对以上两种日期类型同时做处理。代码如下:
package com.syxp.yjxx.test;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class Test {
public static void main(String[] args) {
try {
Workbook workbook = Workbook.getWorkbook(new File("D:\\1234.xls"));
Sheet sheet = workbook.getSheet(0);
System.out.println("================Sheet.Type==============="+sheet.getCell(3, 2).getType().toString());
if(sheet.getCell(3, 2).getType()==CellType.NUMBER){
String mystr= sheet.getCell(3,2).getContents();
System.out.println("==========Number============"+dayAddition(Integer.parseInt(mystr)));
}else if(sheet.getCell(3, 2).getType()==CellType.DATE){
String mystr= sheet.getCell(3,2).getContents();
System.out.println("==============String============"+mystr);
}
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//日期相加天数
public static String dayAddition(int num) throws Exception{
SimpleDateFormat timeformat = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date date = timeformat.parse("01/01/1900");
Calendar a = Calendar.getInstance();
a.setTime(date);
a.add(Calendar.DATE, (num-2));
return timeformat.format(a.getTime());
}
}
另外,下回再也不用Jxl操作Excel了。