- 浏览: 431461 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (184)
- IDE (4)
- dotCMS (3)
- Liferay Portal (1)
- J2EE (7)
- My SQL (16)
- IBM DB2 (3)
- Oracle (2)
- JDBC (4)
- Hibernate (3)
- JSP (0)
- Framework (4)
- Java编程 (30)
- C++编程 (0)
- Struts 1.X (2)
- Struts 2.X (6)
- Linux (11)
- Spring (7)
- JavaScript (6)
- Ajax (2)
- XML (3)
- IBM Websphere Portal (1)
- IBM Lotus Quickr (1)
- CMS (2)
- ERP (0)
- CRM (0)
- 大型网站架构开发 (1)
- 面试武器 (2)
- HTML 5 (2)
- dTree && webFxloadTree (2)
- JVM (7)
- SQL Server (3)
- Tomcat && Apache && Jboss && Weblogic-中间件 (4)
- FreeMarker (2)
- MongoDB (7)
- OpenSource开源 (24)
- Cloud (0)
- FFmpeg (3)
- Thrift (1)
- SpringSide (1)
- Design Pattern (1)
- solr&&ES (2)
- git&svn (1)
- 大数据 (8)
- 人工智能 (0)
- Hadoop (3)
- Spark (0)
- Sqoop (1)
- Flume (1)
- Hive (3)
- HDFS (4)
- ES (0)
- Redis (1)
- Kafka (3)
- MR (0)
- 机器学习 (0)
- 深度学习 (0)
- Impala (2)
- HBase (2)
- Spring Boot (1)
- Spring Cloud (0)
- 大数据架构 (6)
- 架构思想理论 (6)
- 技术管理 (4)
- 数据结构与算法 (4)
最新评论
-
huijz:
...
Spring Data JPA研究-使用Spring Data JPA 简化JPA 开发(ZZ) -
用户名不存在:
[img][/img][*]引用[u][/u][i][/i][ ...
MongoDB 模糊查询的三种实现方式-morphia实现 -
junsheng100:
请给个完整的例子吧!包括jar文件等
java调用ffmpeg获取视频文件信息参数代码 -
mj:
谢谢!!
SQL Server里面如何导出包含(insert into)数据的SQL脚本 (转载ZZ)
Microsoft的Office系列产品拥有大 量的用户,Word、Excel也成为办公文件的首选。在Java中,已经有很多对于Word、Excel的开源的解决方案,其中比较出色的是 Apache的Jakata项目的POI子项目。该项目的官方网站是http://jakarta.apache.org/poi/。
POI 包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。POI是完全的Java Excel和Java Word解决方案。POI子项目包括:POIFS、HSSF、HDF、HPSF。表7-2对它们进行了简要介绍。
表7-2 POI子项目介绍
子项目名 说明
POIFS(POI File System) POIFS是POI项目中最早的最基础的一个模块,是Java到OLE 2 Compound Document Format的接口,支持读写功能,所有的其他项目都依赖与该项目。
HSSF(Horrible Spreadsheet Format) HSSF是Java到Microsoft Excel 97(-2002)文件的接口,支持读写功能
HWPF(Horrible Word Processing Format) HWPF是Java到Microsoft Word 97文件的接口,支持读写功能,但目前该模块还处于刚开始开发阶段,只能实现一些简单文件的操作,在后续版本中,会提供更强大的支持
HPSF(Horrible Property Set Format) HPSF 是Java到OLE 2 Compound Document Format文件的属性设置的接口,属性设置通常用来设置文档的属性(标题,作者,最后修改日期等),还可以设置用户定义的属性。HPSF支持读写功能,当前发布版本中直支持读功能。
7.3.1 对Excel的处理类
下 面通过HSSF提供的接口对Excel文件经行处理。首先需要下载POI的包,可以到apache的官方网站下载,地址为:http: //apache.justdn.org/jakarta/poi/,本书采用的是poi-2.5.1-final-20040804.jar,读者可以 下载当前的稳定版本。把下载的包按照前面介绍的方式加入Build Path,然后新建一个ch7.poi包,并创建一个ExcelReader类。
ExcelReader类可以读取一个XLS文件,然后将其内容逐行提取出来,写入文本文件。其代码如下。
java 代码
public class ExcelReader{
// 创建文件输入流
private BufferedReader reader = null;
// 文件类型
private String filetype;
// 文件二进制输入流
private InputStream is = null;
// 当前的Sheet
private int currSheet;
// 当前位置
private int currPosition;
// Sheet数量
private int numOfSheets;
// HSSFWorkbook
HSSFWorkbook workbook = null;
// 设置Cell之间以空格分割
private static String EXCEL_LINE_DELIMITER = " ";
// 设置最大列数
private static int MAX_EXCEL_COLUMNS = 64;
// 构造函数创建一个ExcelReader
public ExcelReader(String inputfile) throws IOException, Exception{
// 判断参数是否为空或没有意义
if (inputfile == null || inputfile.trim().equals("")){
throw new IOException("no input file specified");
}
// 取得文件名的后缀名赋值给filetype
this.filetype = inputfile.substring(inputfile.lastIndexOf(".") + 1);
// 设置开始行为0
currPosition = 0;
// 设置当前位置为0
currSheet = 0;
// 创建文件输入流
is = new FileInputStream(inputfile);
// 判断文件格式
if (filetype.equalsIgnoreCase("txt")){
// 如果是txt则直接创建BufferedReader读取
reader = new BufferedReader(new InputStreamReader(is));
}
else if (filetype.equalsIgnoreCase("xls")){
// 如果是Excel文件则创建HSSFWorkbook读取
workbook = new HSSFWorkbook(is);
// 设置Sheet数
numOfSheets = workbook.getNumberOfSheets();
}
else{
throw new Exception("File Type Not Supported");
}
}
// 函数readLine读取文件的一行
public String readLine() throws IOException{
// 如果是txt文件则通过reader读取
if (filetype.equalsIgnoreCase("txt")){
String str = reader.readLine();
// 空行则略去,直接读取下一行
while (str.trim().equals("")){
str = reader.readLine();
}
return str;
}
// 如果是XLS文件则通过POI提供的API读取文件
else if (filetype.equalsIgnoreCase("xls")){
// 根据currSheet值获得当前的sheet
HSSFSheet sheet = workbook.getSheetAt(currSheet);
// 判断当前行是否到但前Sheet的结尾
if (currPosition > sheet.getLastRowNum()){
// 当前行位置清零
currPosition = 0;
// 判断是否还有Sheet
while (currSheet != numOfSheets - 1){
// 得到下一张Sheet
sheet = workbook.getSheetAt(currSheet + 1);
// 当前行数是否已经到达文件末尾
if (currPosition == sheet.getLastRowNum()){
// 当前Sheet指向下一张Sheet
currSheet++;
continue;
} else{
// 获取当前行数
int row = currPosition;
currPosition++;
// 读取当前行数据
return getLine(sheet, row);
}
}
return null;
}
// 获取当前行数
int row = currPosition;
currPosition++;
// 读取当前行数据
return getLine(sheet, row);
}
return null;
}
// 函数getLine返回Sheet的一行数据
private String getLine(HSSFSheet sheet, int row){
// 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row);
// 创建字符创缓冲区
StringBuffer buffer = new StringBuffer();
// 获取当前行的列数
int filledColumns = rowline.getLastCellNum();
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++){
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null){
// 判断当前Cell的Type
switch (cell.getCellType()){
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC:{
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)){
// 如果是Date类型则,取得该Cell的Date值
Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串
cellvalue = cell.getDateCellValue().toLocaleString();
}
// 如果是纯数字
else{
// 取得当前Cell的数值
Integer num = new Integer((int) cell
.getNumericCellValue());
cellvalue = String.valueOf(num);
}
break;
}
// 如果当前Cell的Type为STRIN
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getStringCellValue().replaceAll("'", "''");
break;
// 默认的Cell值
default:
cellvalue = " ";
}
} else{
cellvalue = "";
}
// 在每个字段之间插入分割符
buffer.append(cellvalue).append(EXCEL_LINE_DELIMITER);
}
// 以字符串返回该行的数据
return buffer.toString();
}
// close函数执行流的关闭操作
public void close(){
// 如果is不为空,则关闭InputSteam文件输入流
if (is != null){
try{
is.close();
} catch (IOException e){
is = null;
}
}
// 如果reader不为空则关闭BufferedReader文件输入流
if (reader != null){
try{
reader.close();
} catch (IOException e){
reader = null;
}
}
}
}
7.3.2 ExcelReader的运行效果
下面创建一个main函数,用来测试上面的ExcelReader类,代码如下。
java 代码
public static void main(String[] args){
try{
ExcelReader er=new ExcelReader("c:\xp.xls");
String line=er.readLine();
while(line != null){
System.out.println(line);
line=er.readLine();
}
er.close();
}catch(Exception e){
e.printStackTrace();
}
}
main函数先创建一个ExcelReader类,然后调用它提供的接口readLine,对XLS文件进行读取,打印到控制台,处理前的XLS文件如图7-12所示。
图7-12 处理前的XLS文件内容
运行main函数进行内容提取后,Eclipse的控制台输出如图7-13所示。
图7-13 输出结果
可以看到,Excel文件中的内容已经被成功的输出了出来。
7.3.3 POI中Excel文件Cell的类型
在读取每一个Cell的值的时候,通过getCellType方法获得当前Cell的类型,在Excel中Cell有6种类型,如表7-3所示。
表7-3 Cell的类型
CellType 说明
CELL_TYPE_BLANK 空值
CELL_TYPE_BOOLEAN 布尔型
CELL_TYPE_ERROR 错误
CELL_TYPE_FORMULA 公式型
CELL_TYPE_STRING 字符串型
CELL_TYPE_NUMERIC 数值型
本 例采用了CELL_TYPE_STRING和CELL_TYPE_NUMERIC类型,因为在Excel文件中只有字符串和数字。如果Cell的Type 为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以 Double类型的数字存储的。Excel中的Date表示当前时间与1900年1月1日相隔的天数,所以需要调用HSSFDateUtil的 isCellDateFormatted方法,判断该Cell的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一个Java类型的Date。
实际上Excel的数据格式有很多,还支持用户自定义的类型,在Excel中,选择一个单元格然后右键选择“设置单元格格式”,在弹出的单元格格式中选中“数字”,如图7-14所示。
图7-14 Excel的单元格格式
图中的数据有数值、货币、时间、日期、文本等格式。这些数据格式在POI中的HSSFDataFormat类里都有相应的定义。
HSSFDataFormat 是HSSF子项目里面定义的一个类。类HSSFDataFormat允许用户新建数据格式类型。HSSFDataFormat类包含静态方法 static java.lang.String getBuiltinFormat(short index),它可以根据编号返回内置数据类型。另外static short getBuiltinFormat(java.lang.String format)方法则可以根据数据类型返回其编号, static java.util.List getBuiltinFormats()可以返回整个内置的数据格式列表。
在HSSFDataFormat里一共定义了49种内置的数据格式,如表7-4所示。
表7-4 HSSFDataFormat的数据格式
内置数据类型 编号
"General" 0
"0" 1
"0.00" 2
"#,##0" 3
"#,##0.00" 4
"($#,##0_);($#,##0)" 5
"($#,##0_);[Red]($#,##0)" 6
"($#,##0.00);($#,##0.00)" 7
"($#,##0.00_);[Red]($#,##0.00)" 8
"0%" 9
"0.00%" 0xa
"0.00E+00" 0xb
"# ?/?" 0xc
POI 包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。POI是完全的Java Excel和Java Word解决方案。POI子项目包括:POIFS、HSSF、HDF、HPSF。表7-2对它们进行了简要介绍。
表7-2 POI子项目介绍
子项目名 说明
POIFS(POI File System) POIFS是POI项目中最早的最基础的一个模块,是Java到OLE 2 Compound Document Format的接口,支持读写功能,所有的其他项目都依赖与该项目。
HSSF(Horrible Spreadsheet Format) HSSF是Java到Microsoft Excel 97(-2002)文件的接口,支持读写功能
HWPF(Horrible Word Processing Format) HWPF是Java到Microsoft Word 97文件的接口,支持读写功能,但目前该模块还处于刚开始开发阶段,只能实现一些简单文件的操作,在后续版本中,会提供更强大的支持
HPSF(Horrible Property Set Format) HPSF 是Java到OLE 2 Compound Document Format文件的属性设置的接口,属性设置通常用来设置文档的属性(标题,作者,最后修改日期等),还可以设置用户定义的属性。HPSF支持读写功能,当前发布版本中直支持读功能。
7.3.1 对Excel的处理类
下 面通过HSSF提供的接口对Excel文件经行处理。首先需要下载POI的包,可以到apache的官方网站下载,地址为:http: //apache.justdn.org/jakarta/poi/,本书采用的是poi-2.5.1-final-20040804.jar,读者可以 下载当前的稳定版本。把下载的包按照前面介绍的方式加入Build Path,然后新建一个ch7.poi包,并创建一个ExcelReader类。
ExcelReader类可以读取一个XLS文件,然后将其内容逐行提取出来,写入文本文件。其代码如下。
java 代码
public class ExcelReader{
// 创建文件输入流
private BufferedReader reader = null;
// 文件类型
private String filetype;
// 文件二进制输入流
private InputStream is = null;
// 当前的Sheet
private int currSheet;
// 当前位置
private int currPosition;
// Sheet数量
private int numOfSheets;
// HSSFWorkbook
HSSFWorkbook workbook = null;
// 设置Cell之间以空格分割
private static String EXCEL_LINE_DELIMITER = " ";
// 设置最大列数
private static int MAX_EXCEL_COLUMNS = 64;
// 构造函数创建一个ExcelReader
public ExcelReader(String inputfile) throws IOException, Exception{
// 判断参数是否为空或没有意义
if (inputfile == null || inputfile.trim().equals("")){
throw new IOException("no input file specified");
}
// 取得文件名的后缀名赋值给filetype
this.filetype = inputfile.substring(inputfile.lastIndexOf(".") + 1);
// 设置开始行为0
currPosition = 0;
// 设置当前位置为0
currSheet = 0;
// 创建文件输入流
is = new FileInputStream(inputfile);
// 判断文件格式
if (filetype.equalsIgnoreCase("txt")){
// 如果是txt则直接创建BufferedReader读取
reader = new BufferedReader(new InputStreamReader(is));
}
else if (filetype.equalsIgnoreCase("xls")){
// 如果是Excel文件则创建HSSFWorkbook读取
workbook = new HSSFWorkbook(is);
// 设置Sheet数
numOfSheets = workbook.getNumberOfSheets();
}
else{
throw new Exception("File Type Not Supported");
}
}
// 函数readLine读取文件的一行
public String readLine() throws IOException{
// 如果是txt文件则通过reader读取
if (filetype.equalsIgnoreCase("txt")){
String str = reader.readLine();
// 空行则略去,直接读取下一行
while (str.trim().equals("")){
str = reader.readLine();
}
return str;
}
// 如果是XLS文件则通过POI提供的API读取文件
else if (filetype.equalsIgnoreCase("xls")){
// 根据currSheet值获得当前的sheet
HSSFSheet sheet = workbook.getSheetAt(currSheet);
// 判断当前行是否到但前Sheet的结尾
if (currPosition > sheet.getLastRowNum()){
// 当前行位置清零
currPosition = 0;
// 判断是否还有Sheet
while (currSheet != numOfSheets - 1){
// 得到下一张Sheet
sheet = workbook.getSheetAt(currSheet + 1);
// 当前行数是否已经到达文件末尾
if (currPosition == sheet.getLastRowNum()){
// 当前Sheet指向下一张Sheet
currSheet++;
continue;
} else{
// 获取当前行数
int row = currPosition;
currPosition++;
// 读取当前行数据
return getLine(sheet, row);
}
}
return null;
}
// 获取当前行数
int row = currPosition;
currPosition++;
// 读取当前行数据
return getLine(sheet, row);
}
return null;
}
// 函数getLine返回Sheet的一行数据
private String getLine(HSSFSheet sheet, int row){
// 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row);
// 创建字符创缓冲区
StringBuffer buffer = new StringBuffer();
// 获取当前行的列数
int filledColumns = rowline.getLastCellNum();
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++){
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null){
// 判断当前Cell的Type
switch (cell.getCellType()){
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC:{
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)){
// 如果是Date类型则,取得该Cell的Date值
Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串
cellvalue = cell.getDateCellValue().toLocaleString();
}
// 如果是纯数字
else{
// 取得当前Cell的数值
Integer num = new Integer((int) cell
.getNumericCellValue());
cellvalue = String.valueOf(num);
}
break;
}
// 如果当前Cell的Type为STRIN
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getStringCellValue().replaceAll("'", "''");
break;
// 默认的Cell值
default:
cellvalue = " ";
}
} else{
cellvalue = "";
}
// 在每个字段之间插入分割符
buffer.append(cellvalue).append(EXCEL_LINE_DELIMITER);
}
// 以字符串返回该行的数据
return buffer.toString();
}
// close函数执行流的关闭操作
public void close(){
// 如果is不为空,则关闭InputSteam文件输入流
if (is != null){
try{
is.close();
} catch (IOException e){
is = null;
}
}
// 如果reader不为空则关闭BufferedReader文件输入流
if (reader != null){
try{
reader.close();
} catch (IOException e){
reader = null;
}
}
}
}
7.3.2 ExcelReader的运行效果
下面创建一个main函数,用来测试上面的ExcelReader类,代码如下。
java 代码
public static void main(String[] args){
try{
ExcelReader er=new ExcelReader("c:\xp.xls");
String line=er.readLine();
while(line != null){
System.out.println(line);
line=er.readLine();
}
er.close();
}catch(Exception e){
e.printStackTrace();
}
}
main函数先创建一个ExcelReader类,然后调用它提供的接口readLine,对XLS文件进行读取,打印到控制台,处理前的XLS文件如图7-12所示。
图7-12 处理前的XLS文件内容
运行main函数进行内容提取后,Eclipse的控制台输出如图7-13所示。
图7-13 输出结果
可以看到,Excel文件中的内容已经被成功的输出了出来。
7.3.3 POI中Excel文件Cell的类型
在读取每一个Cell的值的时候,通过getCellType方法获得当前Cell的类型,在Excel中Cell有6种类型,如表7-3所示。
表7-3 Cell的类型
CellType 说明
CELL_TYPE_BLANK 空值
CELL_TYPE_BOOLEAN 布尔型
CELL_TYPE_ERROR 错误
CELL_TYPE_FORMULA 公式型
CELL_TYPE_STRING 字符串型
CELL_TYPE_NUMERIC 数值型
本 例采用了CELL_TYPE_STRING和CELL_TYPE_NUMERIC类型,因为在Excel文件中只有字符串和数字。如果Cell的Type 为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以 Double类型的数字存储的。Excel中的Date表示当前时间与1900年1月1日相隔的天数,所以需要调用HSSFDateUtil的 isCellDateFormatted方法,判断该Cell的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一个Java类型的Date。
实际上Excel的数据格式有很多,还支持用户自定义的类型,在Excel中,选择一个单元格然后右键选择“设置单元格格式”,在弹出的单元格格式中选中“数字”,如图7-14所示。
图7-14 Excel的单元格格式
图中的数据有数值、货币、时间、日期、文本等格式。这些数据格式在POI中的HSSFDataFormat类里都有相应的定义。
HSSFDataFormat 是HSSF子项目里面定义的一个类。类HSSFDataFormat允许用户新建数据格式类型。HSSFDataFormat类包含静态方法 static java.lang.String getBuiltinFormat(short index),它可以根据编号返回内置数据类型。另外static short getBuiltinFormat(java.lang.String format)方法则可以根据数据类型返回其编号, static java.util.List getBuiltinFormats()可以返回整个内置的数据格式列表。
在HSSFDataFormat里一共定义了49种内置的数据格式,如表7-4所示。
表7-4 HSSFDataFormat的数据格式
内置数据类型 编号
"General" 0
"0" 1
"0.00" 2
"#,##0" 3
"#,##0.00" 4
"($#,##0_);($#,##0)" 5
"($#,##0_);[Red]($#,##0)" 6
"($#,##0.00);($#,##0.00)" 7
"($#,##0.00_);[Red]($#,##0.00)" 8
"0%" 9
"0.00%" 0xa
"0.00E+00" 0xb
"# ?/?" 0xc
发表评论
-
Java应用OOM内存过高解决及优化
2022-04-27 17:49 1139JVM OOM优化 jmap -heap 303 ... -
哈希算法与MurmurHash3
2022-04-12 15:25 1736MurmurHash 哈希算法 ... -
SQL注入攻击防范研究
2021-12-27 15:25 254SQL注入攻击如何攻击的: JDBC Statemen ... -
IDEA快捷键
2021-12-23 15:53 391IDEA快捷键 1.创建main函数快捷键 在编写代码 ... -
JAVA 8的Lambda表达式和Stream API研究
2018-03-21 17:31 789JAVA 8 Lambda表达式简化了代码开发,代码简洁, ... -
ThreadPoolExecutor里面4种拒绝策略(转)
2017-12-14 18:03 3188ThreadPoolExecutor类实现了Executo ... -
MySQL函数研究总结-CONCAT、REPLACE、ROUND、FLOOR和CEILING、TRUNCATE、CASE WHEN等
2017-02-20 16:26 1633CONCAT、REPLACE、ROUND、FLOOR和CEI ... -
itext实现PDF生成的两种方式-从HTML到PDF
2017-01-18 14:38 11070itext实现PDF生成的两种方式-从HTML到PDF ... -
Java处理Http请求的几种方式总结
2017-01-10 18:17 95601.commons-httpclient 简洁快速模拟H ... -
javaMelody监控接入使用
2016-03-03 23:55 14281.jar pom <!-- javamelody ... -
多线程-java线程池使用
2016-03-01 16:46 1247(一) new Thread(new SolrDataH ... -
java.io.IOException: Too many open files解决方案
2013-03-06 15:35 11906异常:java.io.IOException: Too m ... -
Guava(石榴)使用研究-Google开源Collection类库
2013-01-29 18:33 13481)Guava 简介 Guava 中文是石榴的意思,该项 ... -
Joda-Time&Date4j使用研究-开源JAVA日期时间处理类库
2013-01-29 18:27 22671)Joda-Time简介 Joda-Time提供了一组 ... -
Maven常用配置及Tomcat插件配置
2013-01-25 12:54 17327Maven用了一段时间了,基本上被我摆平了。结合Eclip ... -
GitHub无法访问,修改hosts文件解决
2013-01-22 15:30 1137前几天由于12306的抢票 ... -
MD5加密的几种实现方式研究
2013-01-10 17:08 2547MD5加密的几种实现方式如下: 一、第一种方式 Diges ... -
JAVA 定时方式大总结
2012-05-17 19:38 1490JAVA 定时方式大总结 除了Quartz之外,JAV ... -
获取spring容器applicationContext的几种方式
2012-04-13 10:39 2311一、定义web.xml,由web容器自动加载配置文件初始 ... -
J2EE快速开发框架wabacus3.2简介
2012-03-16 18:45 2178J2EE快速开发框架wabacus 3.2 发布,提高J ...
相关推荐
在这个场景中,我们将详细探讨如何使用Java POI读取Excel文件中的数据,包括获取总行数、列数、单元格内容、合并单元格、行高、列宽以及图片等信息。 首先,确保在项目中已经引入了Apache POI的依赖库。如果你使用...
本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。
在Java开发中,当你需要处理Excel数据时,POI库是一个强大的工具。本压缩包包含了一些关键资源,帮助你理解和使用Java POI处理Excel数据。 首先,`问题.docx`可能是你在使用POI过程中遇到的问题汇总,它可能包含了...
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
Poi库支持这两种格式,并提供了丰富的API来读取、写入和修改Excel数据。 **解析Excel数据的基本步骤如下:** 1. **添加依赖**:首先,在你的项目中引入Poi库。如果你使用Maven,可以在pom.xml文件中添加以下依赖:...
使用POI读取Excel数据的基本步骤如下: 1. 加载Excel文件:使用`WorkbookFactory.create()`方法创建一个`Workbook`实例。 2. 获取工作表:通过`Workbook`对象的`getSheetAt()`或`createSheet()`方法获取或创建工作...
Java的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,尤其是Excel(.xlsx)文档。在本示例中,我们将深入探讨如何利用POI库来生成Excel中的图表曲线,这对于数据可视化和报告生成...
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
以上就是使用Apache POI读取Excel数据并写入Word的基本流程。在实际应用中,你可能需要处理更复杂的情况,比如合并单元格、处理公式、格式转换等,这都需要对POI API有更深入的理解。同时,为了提高性能,可以考虑...
以上就是使用Java POI读取Excel 2007文件并将内容存储到List的基本过程。这个过程可以根据实际需求进行调整,比如处理表头、忽略空行、处理特殊格式的单元格等。在处理大数据量时,还需要考虑性能优化,例如使用迭代...
5. **读取Excel数据**:使用POI读取Excel数据的基本步骤包括: - 加载工作簿:创建HSSFWorkbook对象(.xls)或XSSFWorkbook对象(.xlsx)。 - 访问工作表:通过工作簿对象获取Sheet对象,代表Excel中的工作表。 -...
在Java编程环境中,Apache POI库是一个非常实用的工具,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel(.xlsx 和 .xls)文件。本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel...
Java POI 读取 Excel 中数值精度损失问题解决 Java POI 读取 Excel 中数值精度损失问题解决是指在使用 Java POI 读取 Excel 文件时,遇到数值精度损失的问题。这种问题的出现是因为 Excel 中的数值单元格在读取时,...
本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...
java读写Excel,POI.JAR,Word内容读取
有时候,我们需要在 Java 程序中读取 Excel 文件的内容,例如将 Excel 表格中的数据导入到数据库中或者进行数据分析。这时候,我们可以使用 Apache 的 POI 工具包来读取 Excel 文件。 POI(Poor Obfuscation ...
Java中的Apache POI库是用于读取和写入Microsoft Office格式文件,特别是Excel文档的流行工具。然而,当处理大数据量的Excel文件时,POI可能会导致内存溢出(Out of Memory, OOM),因为默认情况下它会将整个工作簿...
首先,需要创建一个Workbook对象,然后使用Workbook对象的getSheet方法获取Excel文件的Sheet对象,最后使用Sheet对象的getRow方法读取Excel文件的数据。 总结 本文详细介绍了如何使用Java POI将图片导出到Excel中,...
在使用Java POI进行Excel读取操作时,需要导入一系列的库文件,以确保程序能够正确解析和操作Excel数据。这里提到的文件是Java POI库的不同组件和依赖,它们在处理不同版本的Excel文件时起着关键作用。 1. **poi-...