- 浏览: 590911 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
Mr_胡:
确实是jquery版本问题,用新版本的jquery没用
Eclipse 支持jQuery 自动提示 -
redcoatjk:
那遇到事务怎么办?事务是配置到service上.在Listen ...
Listener中取Spring容器中Bean的实例 -
dqd979231776:
+1我用遇到了这个问题,解决了好长时间
<input type="image"> 和 <img> 用法区别 -
李庆辉:
Listener中取Spring容器中Bean的实例 -
骑驴走天下:
膜拜大神,讲的清楚明白,今天正好遇到这个问题,本想用大神说的第 ...
Listener中取Spring容器中Bean的实例
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class ExcelReader { private POIFSFileSystem fs; private HSSFWorkbook wb; private HSSFSheet sheet; private HSSFRow row; private FileInputStream input; private String[] excleTitle; public String[] readExcelTitle(String excelPath) {// 读取Excel表格表头的内容 try { input = new FileInputStream(new File(excelPath));// excelPath,Excel // 文件 的绝对路径 fs = new POIFSFileSystem(input); wb = new HSSFWorkbook(fs); sheet = wb.getSheetAt(0); row = sheet.getRow(0);// 得到标题的内容对象。 int colNum = row.getPhysicalNumberOfCells(); // 得到标题总列数 excleTitle = new String[colNum]; for (int i = 0; i < colNum; i++) { excleTitle[i] = getStringCellValue(row.getCell((short) i)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (input != null) { input.close(); } } catch (IOException e) { e.printStackTrace(); } } return excleTitle; } public Map<Integer, String> readExcelContent(String excelPath) {// 读取Excel数据内容 Map<Integer, String> content = new HashMap<Integer, String>(); String excelStr = "";// excel 内容 try { input = new FileInputStream(new File(excelPath)); fs = new POIFSFileSystem(input); wb = new HSSFWorkbook(fs); sheet = wb.getSheetAt(0); int rowNum = sheet.getLastRowNum(); // 得到总行数 row = sheet.getRow(0);// 得到标题的内容对象。 int colNum = row.getPhysicalNumberOfCells();// 得到每行的列数。 for (int i = 1; i < rowNum; i++) { // 正文内容应该从第二行开始,第一行为表头的标题 row = sheet.getRow(i); int j = 0; while (j < colNum) { excelStr += getStringCellValue(row.getCell((short) j)).trim()+ "&"; j++; } content.put(i, excelStr); excelStr = ""; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (input != null) { input.close(); } } catch (IOException e) { e.printStackTrace(); } } return content; } private String getStringCellValue(HSSFCell cell) {// 获取单元格数据内容为字符串类型的数据 String strCell = ""; switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: strCell = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: strCell = String.valueOf(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: strCell = String.valueOf(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_BLANK: strCell = ""; break; default: strCell = ""; break; } if (strCell.equals("") || strCell == null) { return ""; } if (cell == null) { return ""; } return strCell; } private String getDateCellValue(HSSFCell cell) {// 获取单元格数据内容为日期类型的数据 String result = ""; try { int cellType = cell.getCellType(); if (cellType == HSSFCell.CELL_TYPE_NUMERIC) { Date date = cell.getDateCellValue(); result = (date.getYear() + 1900) + "-" + (date.getMonth() + 1) + "-" + date.getDate(); } else if (cellType == HSSFCell.CELL_TYPE_STRING) { String date = getStringCellValue(cell); result = date.replaceAll("[年月]", "-").replace("日", "").trim(); } else if (cellType == HSSFCell.CELL_TYPE_BLANK) { result = ""; } } catch (Exception e) { System.out.println("日期格式不正确!"); e.printStackTrace(); } return result; } }
- poi-3.1-excel.jar (1.3 MB)
- 描述: apache poi 读取 Excel 的 jar 包
- 下载次数: 334
评论
3 楼
tssnowlotus
2012-01-06
cbxvsli 写道
你60行循环的时候有问题。永远会少列数据
正确的应该是:
// 正文内容应该从第二行开始,第一行为表头的标题
for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i);
int j = 0;
while (j < colNum) {
excelStr += getStringCellValue
(row.getCell((short) j)).trim() + "&";
j++;
}
content.put(i, excelStr);
excelStr = "";
}
正确的应该是:
// 正文内容应该从第二行开始,第一行为表头的标题
for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i);
int j = 0;
while (j < colNum) {
excelStr += getStringCellValue
(row.getCell((short) j)).trim() + "&";
j++;
}
content.put(i, excelStr);
excelStr = "";
}
-----------------------
恩
2 楼
tssnowlotus
2012-01-06
呵呵,这么久的贴子还有人回复呢。
1 楼
cbxvsli
2011-12-13
你60行循环的时候有问题。永远会少列数据
正确的应该是:
// 正文内容应该从第二行开始,第一行为表头的标题
for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i);
int j = 0;
while (j < colNum) {
excelStr += getStringCellValue
(row.getCell((short) j)).trim() + "&";
j++;
}
content.put(i, excelStr);
excelStr = "";
}
正确的应该是:
// 正文内容应该从第二行开始,第一行为表头的标题
for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i);
int j = 0;
while (j < colNum) {
excelStr += getStringCellValue
(row.getCell((short) j)).trim() + "&";
j++;
}
content.put(i, excelStr);
excelStr = "";
}
发表评论
-
More than one fragment with the name [spring_web] was found.
2019-04-19 13:38 3849项目跑的好好的。突然之间报错,不能tomcat启动。 报 ... -
Linux(CentOS7)tomcat8启动报错
2018-04-26 08:57 1299服务器:Centos7 ,Tomcat8 ,JDK8 项目 ... -
java中Double数值的计算。
2011-12-21 17:31 22771double的计算不精确,会有类似0.000000000 ... -
java中连接池的原理,既常用的连接池有哪几种?
2011-05-16 08:46 3166java中数据库的连接是一个非常耗资源的动作,频繁的建立 ... -
Statement 和PreparedStatement的区别
2011-05-16 08:43 14301. Statement用于处理静态 SQL 语句, P ... -
java中的接口是什么?面向接口编程的好处?
2011-05-16 08:40 2118Java中的接口是一系列方法的声明,是一些方法特征的集 ... -
PrintWriter 类中println和write方法的区别
2011-05-10 08:32 2128问题:编写Socket聊天软件,使用PrintWriter类取 ... -
java class文件反编译---jad、jadclipse
2011-05-05 17:50 2581eclipse的java的class文件的反编译工具:jad ... -
Access restriction: The type SwingUtilities2 is not accessible due to restricti
2011-03-16 09:20 2235报错:Access restriction: The type ... -
java线程的sleep(),wait(),notify(),yield()方法的区别要点
2011-03-03 16:38 19681.sleep()使线程休眠一段时间,一段时间结束后,线程 ... -
java中的栈内存和堆内存
2010-12-15 17:37 1253Java把内存分成两种 ... -
Java泛型再学习
2010-09-30 15:20 1288泛型引入java语言已经有很长一段时间了,在JDK5出来的 ... -
读写properties 文件
2010-01-21 17:08 2423/** * 通用IO类。读取,写入properties文件 ... -
该文件不具有良好格式:DOCTYPE-ExternalID的名称既是SYSTEM又是PUBLIC!
2009-08-12 11:50 2660<?xml version="1.0" ... -
dom4j操作XML
2009-08-11 23:43 2381虽然DOM4J 代表了完全独立的开发结果,但最初,它是JD ... -
网站单例登录
2009-04-07 13:31 2030实现网站的单例登录: 1, 在用户表里增加一个判断登 ... -
log4j.log4j.properties大全
2009-03-19 06:59 1452log4j.rootLogger=DEBUG,CONSOLE, ... -
JSP指令元素简介
2009-01-14 16:30 1509指令元素(Directives ... -
时间处理类
2008-09-03 18:09 1367/** * 时间处理类 */ package org.bo ... -
java MD5 加密
2008-08-23 17:30 2103/** * java.security包中的MessageD ...
相关推荐
3. 使用Apache POI读取Excel:下面的代码展示了如何打开Excel文件并读取数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import ...
本文将详细介绍如何使用Apache POI库来读取Excel 2007及以上版本(即XLSX格式)的文件,并提供所需的jar包信息。 首先,要使用Apache POI读取XLSX文件,你需要确保引入了正确的依赖。Apache POI项目提供了多个组件...
这篇博文主要讲解如何使用Apache POI库来读取Excel文件的内容,无论是2003版的.XLS还是2007版及以后的.XLSX格式。 在Java编程中,Apache POI 提供了丰富的API,使得开发者可以方便地操作Excel文件。首先,我们需要...
以上就是使用Apache POI读取Excel数据并写入Word的基本流程。在实际应用中,你可能需要处理更复杂的情况,比如合并单元格、处理公式、格式转换等,这都需要对POI API有更深入的理解。同时,为了提高性能,可以考虑...
3. **读取Excel文件** - 使用`WorkbookFactory`创建`Workbook`对象,这可以是HSSFWorkbook(HSSF)或XSSFWorkbook(XSSF)。 - 通过`Workbook`获取`Sheet`对象,表示工作表。 - `Sheet`中包含多个`Row`,每个`Row...
标题提到的"poi读取excel文件",指的是使用Apache POI库来处理Excel数据。在最新的版本中,POI引入了更高效和强大的功能,使得处理Excel文件变得更加方便。 描述中提到了"最新版poi相关的6个jar包",这些jar包是...
本篇将详细讲解如何使用Apache POI读取Excel文件中的带格式数据。 首先,理解Apache POI的基本架构至关重要。POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的.xls文件,而XSSF用于处理较新的.xlsx...
标题中的"poi读取excel的jar包"指的是Apache POI库的一个版本,它包含了读取Excel 2007文件所需的类和方法。在Java程序中,引入这个jar包后,开发者可以编写代码来处理.xlsx文件,无论是读取数据、解析工作表还是...
本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml <groupId>org.apache.poi ...
Java 使用 Apache POI 读取 Excel 是一个常见的任务,在处理数据导入、导出或数据分析时非常有用。Apache POI 是一个流行的开源库,它允许 Java 开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 ...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本案例中,我们将关注如何使用Apache POI来读取Word文档的内容,并将其以流的形式返回到Web应用程序的前端...
在Java环境中,Apache POI 提供了一套API,使得开发者能够创建、修改和读取Excel文件。这个压缩包包含了Apache POI库的多个版本及其依赖库,如ooxml-schemas、xmlbeans等,用于支持对Excel文件的OOXML(Office Open ...
本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...
Java 使用 Apache POI 读取 Excel 文件是一种常见的数据处理任务,尤其在数据分析、报表生成以及自动化测试等场景中。Apache POI 是一个流行的开源库,它允许开发者在 Java 应用程序中创建、修改和显示 Microsoft ...
在Android平台上,使用Apache POI库来读取Excel文件是一种常见的解决方案。Apache POI是一个流行的开源项目,它允许程序员创建、修改和显示Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在这个“android ...
Apache POI 是一个开源项目,专门用于...通过以上介绍,你应该已经掌握了使用 Apache POI 读取 Excel 文件的基本方法和一些高级特性。在实际开发中,根据具体需求进行灵活运用,可以实现复杂的 Excel 数据处理任务。
在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...