文档章节

java程序转换excel中科学记数法的数据为date类型

涂宗勋
 涂宗勋
发布于 2016/05/12 18:00
字数 511
阅读 50
收藏 3
点赞 2
评论 0

今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能。

 

但是导出后出现了一个问题,里边有一列存储时间的,存储的是long型毫秒数,在导出后就自动变成了科学记数法。

 

且不说从科学记数法中辨别出实际时间,即便是原本的毫秒值也是不易于辨别的,但是这些long值不能直接在excel中转换成date类型,因此我便想到使用poi来把这些毫秒值转换成date再写入原文件中。

 

从mongodb中导出的excel的科学记数法如下图:

 

 

 

java程序如下:

[java] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. package excelDemo1;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.File;  
  5. import java.io.FileInputStream;  
  6. import java.io.FileOutputStream;  
  7. import java.io.OutputStream;  
  8. import java.text.DecimalFormat;  
  9. import java.util.Date;  
  10. import org.apache.poi.hssf.usermodel.HSSFCell;  
  11. import org.apache.poi.hssf.usermodel.HSSFRow;  
  12. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  13. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  14. import org.apache.poi.poifs.filesystem.POIFSFileSystem;  
  15.   
  16. /** 
  17.  * java读取excel文件及内容 
  18.  *  
  19.  * @author tuzongxun123 
  20.  * 
  21.  */  
  22. public class ExcelDemo1 {  
  23.     public static void main(String[] args) {  
  24.         try {  
  25.             // 获取文件在磁盘的存储路径  
  26.             File file = new File("C:" + File.separator + "Users"  
  27.                     + File.separator + "tuzongxun123" + File.separator  
  28.                     + "Desktop" + File.separator + "log.xls");  
  29.             // 读文件输入流  
  30.             FileInputStream fileInputStream = new FileInputStream(file);  
  31.             BufferedInputStream bufferedInputStream = new BufferedInputStream(  
  32.                     fileInputStream);  
  33.             POIFSFileSystem excelfile = new POIFSFileSystem(bufferedInputStream);  
  34.             HSSFWorkbook workbook = new HSSFWorkbook(excelfile);  
  35.             // 根据名称获取excel工作薄  
  36.             HSSFSheet sheet = workbook.getSheet("Sheet0");  
  37.             // 遍历去除工作薄中的行和列  
  38.             for (int i = 1;; i++) {  
  39.                 HSSFRow row = sheet.getRow(i);  
  40.                 if (row != null) {  
  41.                     // 获取科学记数法这一列的单元格  
  42.                     HSSFCell cell = row.getCell(6);  
  43.                     // 格式化科学计数法的数据格式  
  44.                     DecimalFormat df = new DecimalFormat("0");  
  45.                     String value = df.format(cell.getNumericCellValue());  
  46.                     // 时间转换  
  47.                     long long1 = Long.parseLong(value);  
  48.                     Date date = new Date(long1);  
  49.                     // 创建新的单元格存储转换后的数据  
  50.                     HSSFCell cell2 = row.createCell(9);  
  51.                     cell2.setCellValue(date);  
  52.                 } else {  
  53.                     break;  
  54.                 }  
  55.             }  
  56.             // 把转换后的数据写入到文件中  
  57.             OutputStream outputStream = new FileOutputStream(file);  
  58.             workbook.write(outputStream);  
  59.             outputStream.close();  
  60.         } catch (Exception e) {  
  61.             e.printStackTrace();  
  62.         }  
  63.   
  64.     }  
  65. }  


 

 

运行程序后excel中新增一列的数据如下图:

 

 

在excel中把 这一列单元格的格式设置为时间类型后,就会看到数据变成了正确的时间格式,如下图:

 

© 著作权归作者所有

共有 人打赏支持
涂宗勋
粉丝 12
博文 137
码字总数 121453
作品 0
深圳
程序员
做几道基础的Java测试题,看看最近有进步吗?欢迎来学习

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

启示录是真的 ⋅ 05/24 ⋅ 0

java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间

java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。 java.sql.Date是java.util.Date的子类,是一个包装了毫秒 值的瘦包装器,允许 JDBC 将毫秒值标识...

村长大神 ⋅ 2015/02/02 ⋅ 0

java编程学习常见面试题及答案

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/22 ⋅ 0

SpringMVC参数绑定那些事

@RequestParam @ModelAttribute @RequestBody 简单类型,复杂类型 get;post:form-data x-www-form-urlencoded 简单参数绑定 通过get方式访问(post:x-www-form-urlencoded一样) 解析@Re...

4rnold ⋅ 04/15 ⋅ 0

Java就业变难了?你需要对自己有点信心

伴随着IT的火热,越来越多的人进入了IT领域,这在进一步推动着IT发展的同时也极大增加了就业压力。伴随着激烈的岗位竞争,越来越多的人开始感叹工作难找,越火的行业越是如此,Java自是首当其...

糖宝_d864 ⋅ 06/08 ⋅ 0

热修复与插件化基础——Java与Android虚拟机

一、Java虚拟机(JVM) 1、JVM整体结构 使用javac将java文件编译成class文件。 类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。 JVM将内存分配给方法区、堆区、栈区、本地方式...

CSDN_LQR ⋅ 05/13 ⋅ 0

Java NIO AsynchronousFileChannel

原文链接 , 原文作者:Jakob Jenkov, 翻译:Neil Hao 在Java 7,AsynchronousFileChannel 被添加到了Java NIO中。使用AsynchronousFileChannel可以实现异步地读取和写入文件数据。 创建一个A...

Neil_Hao ⋅ 01/20 ⋅ 0

Java核心技术卷1 重读经典小记

Java基础 java中的int类型固定为32位 三个特殊的浮点值:正无穷大(),负无穷大()和NaN()。 在java中,char类型用UTF-16编码描述一个代码单元.不建议在程序中使用char类型. boolean类型的f...

java_龙 ⋅ 02/27 ⋅ 0

Java编程语言:Java的类型转换与多态

对于Java语言应该都不陌生,今天我们就将Java中的入门部分概念做一具体的讲解一下。 1.什么叫JVM,JRE,JDK? JRE 全称为JavaRunningEnvironment,就是我们所说的java运行环境,由java虚拟机和一...

启示录是真的 ⋅ 05/22 ⋅ 0

java基础一(第一个java程序、数据类型、访问控制、static、)

一、第一个java程序 public class HelloWord {//public访问修饰符 class关键字,声明为类 HelloWord类名 //public访问修饰符 static关键字 void表示无返回值 main程序入口 } 二、数据类型 Ja...

废柴 ⋅ 02/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 15分钟前 ⋅ 1

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部