- 浏览: 565113 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (350)
- Sybase (30)
- SQL SERVER2005 (14)
- 数据库 (27)
- SSH框架 (27)
- WebService (21)
- 下载-软件收藏 (15)
- 随笔-日常使用 (9)
- Flex 相关 (13)
- Linux (11)
- Web (64)
- XML相关 (9)
- Socket相关 (1)
- Elipse (3)
- 统计报表 (11)
- 线程相关 (3)
- Java相关 (37)
- JAVASCRIPT (19)
- JAVA反射 (3)
- JSP标签 (3)
- 随笔-其他 (2)
- 随笔-设计模式 (3)
- 随笔-架构师相关 (1)
- 下载-源码 (7)
- 下载-帮助文档 (1)
- 下载-插件 (6)
- 技术-.NET (2)
- 技术-Excel VBA (8)
- 应用-地图相关 (2)
- 应用-GSM短信猫 (5)
- 应用-单点登录 (3)
- Android相关 (3)
最新评论
-
sucheng2016:
发现jconn4.jar 里面有getBlob(String) ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
sucheng2016:
java.lang.UnsupportedOperationE ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
ok123zxx:
没下文了吗
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor -
q1345111:
大家这个问题 尚未完成方法 com.sybase.jdbc3. ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
bdk82924:
heshujing217187 写道问题同1楼一样,求解!换j ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
JAVA使用POI操作excel2007 和 excel2003
日期格式和数字格式好像不好区分~~悲惨 ....
jar包下载:
http://mirror.bjtu.edu.cn/apache//poi/dev/bin/poi-bin-3.8-beta3-20110606.tar.gz
测试代码
import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; 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.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PoiTest { /** * 说明 * * @param args * @author * @throws IOException * @date 2011-7-28 上午06:21:43 */ public static void main(String[] args) throws IOException { // read2007("aaa.xlsx"); read2003("bbb.xls"); } public static void read2003(String strPath) throws IOException { // 构造 XSSFWorkbook 对象,strPath 传入文件路径 Workbook xwb = new HSSFWorkbook(new FileInputStream(strPath)); // sheet 的个数 int sheets = xwb.getNumberOfSheets(); // 读取第一章表格内容 HSSFSheet sheet = (HSSFSheet) xwb.getSheetAt(0); // 定义 row、cell HSSFRow row; String cellStr; // 循环输出表格中的内容 for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) { // 通过 row.getCell(j).toString() 获取单元格内容, cellStr = row.getCell(j).toString(); // System.out.print(cellStr); HSSFCell cell = row.getCell(j); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue()); if (HSSFDateUtil.isCellDateFormatted(cell)) { // 判断方法听说只有在2003下可以,2007判断不对头 System.out.print(DateUtil.getJavaDate(cell.getNumericCellValue())); System.out.println(cell.getDateCellValue()); } System.out.print("(NUMERIC)"); break; case HSSFCell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue()); System.out.print("(STRING)"); // value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BLANK: System.out.print("(BLANK)"); break; default: System.out.print(row.getCell(j).toString()); System.out.print("(default)"); } System.out.print("\t"); } System.out.println(""); } } public static void read2007(String strPath) throws IOException { // 构造 XSSFWorkbook 对象,strPath 传入文件路径 Workbook xwb = new XSSFWorkbook(strPath); // sheet 的个数 int sheets = xwb.getNumberOfSheets(); // 读取第一章表格内容 XSSFSheet sheet = (XSSFSheet) xwb.getSheetAt(0); // 定义 row、cell XSSFRow row; String cellStr; // 循环输出表格中的内容 for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) { // 通过 row.getCell(j).toString() 获取单元格内容, cellStr = row.getCell(j).toString(); // System.out.print(cellStr); XSSFCell cell = row.getCell(j); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue()); if (HSSFDateUtil.isCellDateFormatted(cell)) { // 判断方法听说只有在2003下可以,2007判断不对头 System.out.print(DateUtil.getJavaDate(cell.getNumericCellValue())); System.out.println(cell.getDateCellValue()); } System.out.print("(NUMERIC)"); break; case HSSFCell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue()); System.out.print("(STRING)"); // value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BLANK: System.out.print("(BLANK)"); break; default: System.out.print(row.getCell(j).toString()); System.out.print("(default)"); } System.out.print("\t"); } System.out.println(""); } } }
下面是兼容2003和2007的代码 ,已测试
转自:http://blog.csdn.net/jack0511/article/details/6179593
/** * ClassName:ExcelReader.java * Author: wenbin.ji * CreateTime: Jan 28, 2011 11:16:29 AM * Description:Excel数据读取工具类,POI实现,兼容Excel2003,及Excel2007 **/ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelReader { Workbook wb = null; List<String[]> dataList = new ArrayList<String[]>(100); public static void main(String[] args) { ExcelReader e = new ExcelReader("aaa.xlsx"); // ExcelReader e = new ExcelReader("bbb.xls"); System.out.println(e.getRowNum(0)); List<String[]> list = e.getAllData(0); for (String[] s : list) { System.out.println(Arrays.asList(s).toString()); } } public ExcelReader(String path) { try { InputStream inp = new FileInputStream(path); wb = WorkbookFactory.create(inp); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (InvalidFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 取Excel所有数据,包含header * * @return List<String[]> */ public List<String[]> getAllData(int sheetIndex) { int columnNum = 0; Sheet sheet = wb.getSheetAt(sheetIndex); if (sheet.getRow(0) != null) { columnNum = sheet.getRow(0).getLastCellNum() - sheet.getRow(0).getFirstCellNum(); } if (columnNum > 0) { for (Row row : sheet) { String[] singleRow = new String[columnNum]; int n = 0; for (int i = 0; i < columnNum; i++) { Cell cell = row.getCell(i, Row.CREATE_NULL_AS_BLANK); switch (cell.getCellType()) { case Cell.CELL_TYPE_BLANK: singleRow[n] = ""; break; case Cell.CELL_TYPE_BOOLEAN: singleRow[n] = Boolean.toString(cell.getBooleanCellValue()); break; // 数值 case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { singleRow[n] = String.valueOf(cell.getDateCellValue()); } else { cell.setCellType(Cell.CELL_TYPE_STRING); String temp = cell.getStringCellValue(); // 判断是否包含小数点,如果不含小数点,则以字符串读取,如果含小数点,则转换为Double类型的字符串 if (temp.indexOf(".") > -1) { singleRow[n] = String.valueOf(new Double(temp)).trim(); } else { singleRow[n] = temp.trim(); } } break; case Cell.CELL_TYPE_STRING: singleRow[n] = cell.getStringCellValue().trim(); break; case Cell.CELL_TYPE_ERROR: singleRow[n] = ""; break; case Cell.CELL_TYPE_FORMULA: cell.setCellType(Cell.CELL_TYPE_STRING); singleRow[n] = cell.getStringCellValue(); if (singleRow[n] != null) { singleRow[n] = singleRow[n].replaceAll("#N/A", "").trim(); } break; default: singleRow[n] = ""; break; } n++; } if ("".equals(singleRow[0])) { continue; }// 如果第一行为空,跳过 dataList.add(singleRow); } } return dataList; } /** * 返回Excel最大行index值,实际行数要加1 * * @return */ public int getRowNum(int sheetIndex) { Sheet sheet = wb.getSheetAt(sheetIndex); return sheet.getLastRowNum(); } /** * 返回数据的列数 * * @return */ public int getColumnNum(int sheetIndex) { Sheet sheet = wb.getSheetAt(sheetIndex); Row row = sheet.getRow(0); if (row != null && row.getLastCellNum() > 0) { return row.getLastCellNum(); } return 0; } /** * 获取某一行数据 * * @param rowIndex * 计数从0开始,rowIndex为0代表header行 * @return */ public String[] getRowData(int sheetIndex, int rowIndex) { String[] dataArray = null; if (rowIndex > this.getColumnNum(sheetIndex)) { return dataArray; } else { dataArray = new String[this.getColumnNum(sheetIndex)]; return this.dataList.get(rowIndex); } } /** * 获取某一列数据 * * @param colIndex * @return */ public String[] getColumnData(int sheetIndex, int colIndex) { String[] dataArray = null; if (colIndex > this.getColumnNum(sheetIndex)) { return dataArray; } else { if (this.dataList != null && this.dataList.size() > 0) { dataArray = new String[this.getRowNum(sheetIndex) + 1]; int index = 0; for (String[] rowData : dataList) { if (rowData != null) { dataArray[index] = rowData[colIndex]; index++; } } } } return dataArray; } }
发表评论
-
Excel相关技巧 改变背景色 图标
2011-07-29 15:45 2196在Excel 2007中使用图标 ... -
Excel相关技巧 复选框
2011-07-29 15:37 1429想要在Excel2007中插入复选框 使用过程中发现 ... -
Excel 保护工作表时如何分组显示
2011-07-29 11:45 2149在 excel 2007下测试过 代码作 ... -
JAVA使用JXL操作Excel
2009-09-16 10:25 1253~~ code: import java.io ... -
定位到DOC文件中的指定行
2009-09-07 16:45 1054Worksheet_BeforeRightClick '查看 ... -
清除表格记录
2009-09-07 14:21 1080ActiveSheet.Range("A4:Q10 ... -
用VBA获取表格数据生成文件
2009-09-05 12:46 1906'*** ' 生成文件 '***** Sub cTes ...
相关推荐
Java 使用 Apache POI 操作 Excel 是一种常见的数据处理方式,特别是在大数据分析、报表生成和数据导入导出等场景中。Apache POI 是一个开源库,它允许 Java 开发者读写 Microsoft Office 格式,包括 Excel(.xlsx ...
java使用poi操作excel需要的所有jar包(poi3.8版本),里面有poi-3.8-20120326.jar、poi-ooxml-3.8-20120326.jar、poi-ooxml-schemas-3.8-20120326.jar、dom4j-1.6.1.jar、xmlbeans-2.3.0.jar
Java 使用Apache POI库操作Excel 2007文件详解 在Java开发中,处理Excel文件是一项常见的任务,特别是对于数据分析、数据导入导出或报表生成等场景。Apache POI是一个流行的开源库,它允许开发者读写Microsoft ...
使用第三方jar的POI实现对Excel文件写入和读取,写入和读取Excel都是使用Java反射方式实现,可以匹配任何实体类
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java POI Java POI 是一个开源的 Java 库,由 Apache 软件基金会维护。它提供了一系列的 API,用于处理 Microsoft Office 文件...
用于java使用poi技术,读取word文档,和生成excel表格
Apache POI是一个开源的Java库,可以用来读、写和编辑Microsoft Office文档。代码创建一个简单Excel文件,包含一个工作表,工作表中有一行包含两个单元格。代码在操作完成后通过调用workbook.close()确保Apache POI...
Apache POI是一个流行的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx, .xls)。在本项目中,我们结合了POI库和XML技术来实现Excel数据的验证与导入数据库。 首先,...
Java的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,尤其是Excel(.xlsx)文档。在本示例中,我们将深入探讨如何利用POI库来生成Excel中的图表曲线,这对于数据可视化和报告生成...
Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件...以上就是使用Apache POI 3.8版本在Java中操作Excel所需的关键知识点。记住,正确导入所有必需的jar包是成功运行代码的基础。
标题中的"java通过poi操作excel jar包"指的是使用Apache POI库来处理Excel文件的Java程序,通常需要引入特定版本的POI JAR包。在这个案例中,我们有两个版本的JAR包可供使用:poi_3.17.jar和poi_3.15.jar。这些版本...
标题:“Java使用poi操作excel实例解析” 描述:“主要为大家详细介绍了Java使用poi操作excel的简单实例,感兴趣的小伙伴们可以参考一下” 标签:“Java poi excel” 知识点: 1. POI概念介绍:Apache POI是一个...
java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!
在界面上有一个TextField,一个浏览按钮,一个导入按钮。当选择浏览按钮时,弹出文本选择窗口,选择Excel文件之后,将路径显示在TextField中。点击导入,将Excel中的数据保存到SqlServer数据库中。
jar包包含: commons-collections4-4.1.jar, poi-3.15.jar, poi-ooxml-3.15.jar, poi-ooxml-schemas-3.15.jar, xmlbeans-2.5.0.jar
下面将详细介绍如何使用Java POI来操作Excel以及相关的知识点。 1. **基本概念** - HSSF(Horrible Spreadsheet Format):这是POI库处理Excel 97-2003(.xls)格式的部分。HSSF提供了一套API,可以创建、修改和...
java使用apache的poi处理excel
二、Java POI操作Excel的核心功能 1. 创建新的Excel工作簿 使用`WorkbookFactory.create()`方法可以创建一个新的Excel工作簿对象,然后通过工作簿对象创建工作表。 2. 读取Excel工作簿 同样,使用`WorkbookFactory....