一、Java导出excel日期单元格设置方法
问题:
最近开发Java导出报表功能,测试发现了一个问题:
导出excel后,日期单元格的内容为:yyyy-MM-dd HH:mm:ss
;
但是双击该单元格后,再点击其它单元格时,这个日期就会变成一个数字了(好像是距离1970-01-01的天数),有问题。
解决方法:
在Java代码中,设置单元格格式,样例如下:
//表格对象
XSSFWorkbook wb = new XSSFWorkbook();
//样式对象
XSSFCellStyle style = wb.createCellStyle();
//数据格式对象
XSSFDataFormat format = wb.createDataFormat();
//给样式对象设置数据格式
style.setDataFormat(format.getFormat("yyyy-MM-dd HH:mm:ss"));
//创建一个子表
XSSFSheet sheet = wb.createSheet("样例表");
//创建一行
XSSFRow row = sheet.createRow(0);
//创建一格
XSSFCell cell = row.createCell(0);
//给格设置样式,这样日期格式就正确了
cell.setCellStyle(style);
//给格设置内容,日期样例
cell.setCellValue("2022-02-22 22:22:22");
二、Java秒转时分秒方法
输入:
String类型的秒(其实是int)
输出:
String类型,“x秒” 或 “x分x秒” 或 “x时x分x秒”
public static String transHms(String str){
if(str==null || "".equals(str.trim())){
return "";
}else{
try{
int second = Integer.parseInt(str);
if(second <=59){
return second + "秒";
}
else if(second <= 3600){
int minute = second / 60;
second = second - minute * 60;
return minute + "分" + second + "秒";
}else{
int hour = second / 3600;
second = second - hour * 3600;
int minute = second / 60;
second = second - minute * 60;
return hour + "时" + minute + "分" + second + "秒";
}
}catch (Exception e) {
return "";
}
}
}