- 浏览: 587304 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
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 3769项目跑的好好的。突然之间报错,不能tomcat启动。 报 ... -
Linux(CentOS7)tomcat8启动报错
2018-04-26 08:57 1243服务器:Centos7 ,Tomcat8 ,JDK8 项目 ... -
java中Double数值的计算。
2011-12-21 17:31 22747double的计算不精确,会有类似0.000000000 ... -
java中连接池的原理,既常用的连接池有哪几种?
2011-05-16 08:46 3150java中数据库的连接是一个非常耗资源的动作,频繁的建立 ... -
Statement 和PreparedStatement的区别
2011-05-16 08:43 14161. Statement用于处理静态 SQL 语句, P ... -
java中的接口是什么?面向接口编程的好处?
2011-05-16 08:40 2072Java中的接口是一系列方法的声明,是一些方法特征的集 ... -
PrintWriter 类中println和write方法的区别
2011-05-10 08:32 2111问题:编写Socket聊天软件,使用PrintWriter类取 ... -
java class文件反编译---jad、jadclipse
2011-05-05 17:50 2564eclipse的java的class文件的反编译工具:jad ... -
Access restriction: The type SwingUtilities2 is not accessible due to restricti
2011-03-16 09:20 2224报错:Access restriction: The type ... -
java线程的sleep(),wait(),notify(),yield()方法的区别要点
2011-03-03 16:38 19531.sleep()使线程休眠一段时间,一段时间结束后,线程 ... -
java中的栈内存和堆内存
2010-12-15 17:37 1236Java把内存分成两种 ... -
Java泛型再学习
2010-09-30 15:20 1265泛型引入java语言已经有很长一段时间了,在JDK5出来的 ... -
读写properties 文件
2010-01-21 17:08 2408/** * 通用IO类。读取,写入properties文件 ... -
该文件不具有良好格式:DOCTYPE-ExternalID的名称既是SYSTEM又是PUBLIC!
2009-08-12 11:50 2642<?xml version="1.0" ... -
dom4j操作XML
2009-08-11 23:43 2344虽然DOM4J 代表了完全独立的开发结果,但最初,它是JD ... -
网站单例登录
2009-04-07 13:31 2003实现网站的单例登录: 1, 在用户表里增加一个判断登 ... -
log4j.log4j.properties大全
2009-03-19 06:59 1432log4j.rootLogger=DEBUG,CONSOLE, ... -
JSP指令元素简介
2009-01-14 16:30 1492指令元素(Directives ... -
时间处理类
2008-09-03 18:09 1314/** * 时间处理类 */ package org.bo ... -
java MD5 加密
2008-08-23 17:30 2078/** * java.security包中的MessageD ...
相关推荐
标题 "POI读取Excel带格式数据" 涉及到的是Apache POI库在Java中的使用,这个库允许开发者处理Microsoft Office格式的文件,包括Excel。Apache POI是一个开源项目,提供了API来读取、写入和修改Excel文档。在本场景...
本文将详细介绍如何使用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包是...
标题中的"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 格式的文件,其中包括 ...
3. 使用Apache POI读取Excel:下面的代码展示了如何打开Excel文件并读取数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import ...
在Java环境中,Apache POI 提供了一套API,使得开发者能够创建、修改和读取Excel文件。这个压缩包包含了Apache POI库的多个版本及其依赖库,如ooxml-schemas、xmlbeans等,用于支持对Excel文件的OOXML(Office Open ...
在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()`方法打开或创建一...
标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...
Java 使用 Apache POI 读取 Excel 文件是一种常见的数据处理任务,尤其在数据分析、报表生成以及自动化测试等场景中。Apache POI 是一个流行的开源库,它允许开发者在 Java 应用程序中创建、修改和显示 Microsoft ...
在本文中,我们将深入探讨如何使用Apache POI读取Excel表格内容。 首先,我们需要理解Apache POI的基本架构。POI分为两个主要部分:HSSF(Horizontally-Scalable Storage Format)用于处理旧版的BIFF格式Excel文件...