poi 输出Excel显示内容
在业务系统中多少回接触到Excel解析。在java开发平台下选择 Apache POI是一个非常明智的选择,POI提供非常完善API来读取或写入Microsoft Office Excel。
目前对导入的数据都会进行二次加工,我们开发模式就是先把Excel中的内容直接原样导入数据库对应的一张数据表中,然后再进行二次加工。什么是原样,那就是我们在excle看到是什么样的,导入的数据就是什么样的,那怎样实现呢?
首先考虑到,exce另存为csv,然后在解析csv就可以,excel另存为csv后,如下

似乎这样就可以了,但用户上传的Excel文件通过后台转换csv文件也麻烦(PS:其实我都不知道怎么转,有知道的朋友还希望能分享下),说好不是用POI的么,那么接下来我们了解下POI中处理Excel的一些信息

从上图得知,POI类中带HSSF的是处理03格式的,XSSF是处理07以上格式的,废话不多说了,先看看原样输出的一个重要角色 DataFormatter,
查阅官方文档,红框的地方清楚说明了,就是现实Excel中的现实的文本

这里对于公式类型的还需要判断下,
DataFormatter df = new DataFormatter();
if (cell.getCellType() == cell.CELL_TYPE_FORMULA) {
FormulaEvaluator formulaEval = wb.getCreationHelper().createFormulaEvaluator();
value = df.formatCellValue(cell, formulaEval);
} else {
value = df.formatCellValue(cell);
}

所以就这么一句代码,就取得的单元格中显示的值,算是大工搞成。ps:解析Excle的完整代码
private ArrayList<String[]> GetExcel(String filename)
throws FileNotFoundException, IOException, Exception {
File f = new File(filename);
ArrayList data = new ArrayList();
if (f.exists()) {
InputStream fis = new FileInputStream(f);
Workbook wb = WorkbookFactory.create(fis);
Sheet fst = wb.getSheetAt(0);
int rowcount = fst.getLastRowNum();
Row headrow = fst.getRow(0);
int colcount = headrow.getLastCellNum();
for (int ri = 0; ri <= rowcount; ri++) {
System.out.println("");
System.out.println("第" + ri + "行数据");
String[] colValues = new String[colcount];
Row row = fst.getRow(ri);
for (int i = 0; i < colcount; i++) {
Cell cell = row.getCell(i);
String value = "";
if (cell != null) {
DataFormatter df = new DataFormatter();
if (cell.getCellType() == cell.CELL_TYPE_FORMULA) {
FormulaEvaluator formulaEval = wb.getCreationHelper().createFormulaEvaluator();
value = df.formatCellValue(cell, formulaEval);
} else {
value = df.formatCellValue(cell);
}
}
colValues[i] = value;
System.out.print(colValues[i] + "--");
}
data.add(colValues);
}
}
f.delete();
return data;
}
2015-12-04
poi 输出Excel显示内容的更多相关文章
- 使用POI读取excel文件内容
		
1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...
 - poi导出excel
		
Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...
 - 使用poi读写excel文件
		
使用poi库测试了一下读取excel文件,效果不错,跟大家分享一下. 第一列是数值型,第二列是字符型,代码如下: package poi; import java.io.FileInputStream ...
 - java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
		
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
 - poi读取Excel模板并修改模板内容与动态的增加行
		
有时候我们可能遇到相当复杂的excel,比如表头的合并等操作,一种简单的方式就是直接代码合并(浪费时间),另一种就是写好模板,动态的向模板中增加行和修改指定单元格数据. 1.一个简单的根据模板shee ...
 - php网址显示excel表格内容
		
/** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/view/119187 ...
 - POI读取Excel内容格式化
		
在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...
 - 将CMD内的显示内容输出到txt文件
		
将CMD内的显示内容输出到txt文件 xxxx -t >c:\test.txt //xxxx为命令 如ping www.baidu.com //-t >c:\test.tx ...
 - poi读取excel内容工具类
		
该工具类可以读取excel2007,excel2003等格式的文件,xls.xlsx文件格式 package com.visolink; import org.apache.poi.hssf.user ...
 
随机推荐
- ubuntu14.04上Trac配置记录
			
系统环境:ubuntu14.04 (并假设Apache2服务可以正常运行) 1. 安装软件: sudo aptitude install trac python-mysqldb 2. 创建数据库Tra ...
 - 可维护的javascript
			
理论上我只能把序看完....... 第一章:基本的格式化 1.1:JSLint,JSHint查找代码中潜在的错误. 1.2:缩进:空格(2,4,8没有兼容性)和tab(不同的编辑器展现不一样),在编辑 ...
 - ExtJs 3.0 动态生成 CheckBox
			
在开发过程中,往往需要利用数据动态生成Checkbox.如权限节点.考试答案,调查选项等等.在Extjs中,有两种方法来获取后台数据,一是Ext.Ajax()方法,第二种是利用 Store,store ...
 - Java 用自带dom解析器遍历叶子节点内容
			
一.XML文件config.xml,内容如下: <?xml version="1.0" encoding="UTF-8" standalone=" ...
 - ORA-00060:等待资源时检测到死锁的一种处理方法
			
先执行脚本: SELECT p.sipid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name FRO ...
 - 将图片压缩后转Base64函数
			
function CutImgToBase(fn: string): string; // 压缩图片只能压缩bmp:将jpg转换成bmp再压缩 var m1: TMemoryStream; m2: T ...
 - 【转载】CentOS6.5_X64下安装配置MongoDB数据库
			
[转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09| 分类: 默认分类|举报|字号 订阅 下载LOFTER客户端 本文转载自zhm&l ...
 - Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
			
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址 ...
 - 以 Composer 的方式在 PhpStorm 中添加代码审查工具 Code Sniffer
			
一.前提条件 Windows 操作系统 可以在本地运行的 PHP 环境,个人用的是 laragon PhpStorm Composer 二.设置步骤 (一)下载 Code Sniffer 主要使用 P ...
 - Hadoop2.20集群搭建
			
hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等. 注意:apache提供的hadoop-2.2.0的安装包是在32位操作系统编译的,因为hadoop依赖一些C+ ...