㈠ java导出excel时的日期和时间问题
提问虽然已经过去很长时间了,但是这个问题很普遍。我来补充一下,希望大家能看到吧、、
给导出时间格式的字段增加一个css样式:mso-number-format:'\@' 即可('\@'是格式化为文本方式)。
例:<td style="mso-number-format:'\@';"><%=myDateTime %></td>
㈡ java读取excel里面的时间格式是5月17日,但是读取出来以后打印的结果是41411
建议你把日期格式更换一下,比如你的日期是在A1,则在B1输入=text(a1,"m月d日"),然后再让java读取的单元格为B1即可
要么你也可以直接在日期处这样输入=TEXT(DATE(2013,5,17),"m月d日")
㈢ JAVA如何从excel表格中读取正确的时间
excel的VBA里:
dim xStrTime as string
xstrtime = format(celles(2,1).value,"hh:mm:ss")
可以把单元格A2的时间赋值给字符串变量xstrtime,格式就是24小时制。
你的JAVA应该也可以用。
㈣ java读取excel文件,怎么取日期列
一、定义excel的格式为普通文本,读出来永远都是String格式的字符串,再通过字符串转时间。
二、定义为时间格式的,读取用getDateCellValue。
如果你这样一直读出来都是数字的话,转为long的毫秒,再转为date。
那个数字是日期距离1900年1月1日的天数
㈤ java导出excel,为什么时间会变成小数点
你好,设置单元格类型只能针对一个具体的单元格Cell,没有针对一行Row的直接处理 对Cell设置单元格类型方法如下,cell.setCellType(Cell.CELL_TYPE_STRING);
㈥ java读取excel 不知道excel里面具体内容是时间还是数字或者是字符串 如何正确读取呢
java读取excel时间格式出现数字的处理方法:
Excel存储日期、时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化
1、数值格式(CELL_TYPE_NUMERIC):
1.纯数值格式:getNumericCellValue() 直接获取数据
2.日期格式:处理yyyy-MM-dd, d/m/yyyy h:mm, HH:mm 等不含文字的日期格式
1).判断是否是日期格式:HSSFDateUtil.isCellDateFormatted(cell)
2).判断是日期或者时间
cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")
OR: cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("yyyy-MM-dd")
3.自定义日期格式:处理yyyy年m月d日,h时mm分,yyyy年m月等含文字的日期格式
判断cell.getCellStyle().getDataFormat()值,解析数值格式
yyyy年m月d日----->31
m月d日---->58
h时mm分--->32
举例说明:
private String parseExcel(Cell cell) {
String result = new String();
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:// 数字类型
if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
SimpleDateFormat sdf = null;
if (cell.getCellStyle().getDataFormat() == HSSFDataFormat
.getBuiltinFormat("h:mm")) {
sdf = new SimpleDateFormat("HH:mm");
} else {// 日期
sdf = new SimpleDateFormat("yyyy-MM-dd");
}
Date date = cell.getDateCellValue();
result = sdf.format(date);
} else if (cell.getCellStyle().getDataFormat() == 58) {
// 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
double value = cell.getNumericCellValue();
Date date = org.apache.poi.ss.usermodel.DateUtil
.getJavaDate(value);
result = sdf.format(date);
} else {
double value = cell.getNumericCellValue();
CellStyle style = cell.getCellStyle();
DecimalFormat format = new DecimalFormat();
String temp = style.getDataFormatString();
// 单元格设置成常规
if (temp.equals("General")) {
format.applyPattern("#");
}
result = format.format(value);
}
break;
case HSSFCell.CELL_TYPE_STRING:// String类型
result = cell.getRichStringCellValue().toString();
break;
case HSSFCell.CELL_TYPE_BLANK:
result = "";
default:
result = "";
break;
}
return result;
}
㈦ Java生成excel设置时间权限
可以参考http://blog.csdn.net/liujimmy/article/details/6328298这个
㈧ java读取excel时间格式出现数字怎么处理
在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。
正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,创建一个日期格式,再将单元格的内容以这个日期格式显示出来。如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了。
具体代码如下:
主要是判断NUMERIC 的时候 同事判断下 单元格是不是日期格式 如果是 日期格式直接 转成日期格式字符串返回值就ok了。
if(0==cell.getCellType()){ //判断是否为日期类型 if(HSSFDateUtil.isCellDateFormatted(cell)){ //用于转化为日期格式Dated=cell.getDateCellValue(); DateFormatformater=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); str[k]=formater.format(d);}else{ //用于格式化数字,只保留数字的整数部分 DecimalFormatdf=newDecimalFormat("########"); str[k]=df.format(cell.getNumericCellValue()); }
㈨ java导入excel时怎么处理日期格式
在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。
如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,
创建一个日期格式,再将单元格的内容以这个日期格式显示出来。如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了。具体代码如下:
if (0 == cell.getCellType()) {
//判断是否为日期类型
if(HSSFDateUtil.isCellDateFormatted(cell)){
//用于转化为日期格式
Date d = cell.getDateCellValue();
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str[k] = formater.format(d);
}else{
// 用于格式化数字,只保留数字的整数部分
DecimalFormat df = new DecimalFormat("########");
str[k] = df.format(cell.getNumericCellValue());
}