- 浏览: 208482 次
- 性别:
- 来自: 新疆
文章分类
最新评论
-
nirohappy:
分析得非常好,帮到大忙了
64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法[转帖] -
行到水穷:
昨天搞了半天,原来答案就是这么坑 ,谢谢大神
64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法[转帖] -
wukele:
及时雨,找了好久
64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法[转帖] -
hyj1254:
这样计算是不准确的,js的乘或除会产生精度问题。
javascript 四舍五入函数 -
saveunme:
楼主,代码里的<span>是怎么回事啊....?
java下载远程服务器端数据文件
方法1:(转自:http://www.blogjava.net/hwpok/archive/2010/01/20/310263.html)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; 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.xssf.usermodel.XSSFWorkbook; /** *//** * <ul> * <li>Title:[POI基础上的Excel数据读取工具]</li> * <li>Description: [支持Excell2003,Excell2007,自动格式化数值型数据,自动格式化日期型数据]</li> * <li>Copyright 2009 RoadWay Co., Ltd.</li> * <li>All right reserved.</li> * <li>Created by [惠万鹏] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * * <li>所需Jar包列表</li> * <li>poi-3.6-20091214.jar</li> * <li>poi-contrib-3.6-20091214.jar</li> * <li>poi-examples-3.6-20091214.jar</li> * <li>poi-ooxml-3.6-20091214.jar</li> * <li>poi-ooxml-schemas-3.6-20091214.jar</li> * <li>poi-scratchpad-3.6-20091214.jar</li> * <li>xmlbeans-2.3.0.jar</li> * <ul> * * @version 1.0 */ public class POIExcelUtil { /** *//** 总行数 */ private int totalRows = 0; /** *//** 总列数 */ private int totalCells = 0; /** *//** 构造方法 */ public POIExcelUtil() {} /** *//** * <ul> * <li>Description:[根据文件名读取excel文件]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @param fileName * @return * @throws Exception */ public List<ArrayList<String>> read(String fileName) { List<ArrayList<String>> dataLst = new ArrayList<ArrayList<String>>(); /** *//** 检查文件名是否为空或者是否是Excel格式的文件 */ if (fileName == null || !fileName.matches("^.+\\.(?i)((xls)|(xlsx))$")) { return dataLst; } boolean isExcel2003 = true; /** *//** 对文件的合法性进行验证 */ if (fileName.matches("^.+\\.(?i)(xlsx)$")) { isExcel2003 = false; } /** *//** 检查文件是否存在 */ File file = new File(fileName); if (file == null || !file.exists()) { return dataLst; } try { /** *//** 调用本类提供的根据流读取的方法 */ dataLst = read(new FileInputStream(file), isExcel2003); } catch (Exception ex) { ex.printStackTrace(); } /** *//** 返回最后读取的结果 */ return dataLst; } /** *//** * <ul> * <li>Description:[根据流读取Excel文件]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @param inputStream * @param isExcel2003 * @return */ public List<ArrayList<String>> read(InputStream inputStream, boolean isExcel2003) { List<ArrayList<String>> dataLst = null; try { /** *//** 根据版本选择创建Workbook的方式 */ Workbook wb = isExcel2003 ? new HSSFWorkbook(inputStream) : new XSSFWorkbook(inputStream); dataLst = read(wb); } catch (IOException e) { e.printStackTrace(); } return dataLst; } /** *//** * <ul> * <li>Description:[得到总行数]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @return */ public int getTotalRows() { return totalRows; } /** *//** * <ul> * <li>Description:[得到总列数]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @return */ public int getTotalCells() { return totalCells; } /** *//** * <ul> * <li>Description:[读取数据]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @param wb * @return */ private List<ArrayList<String>> read(Workbook wb) { List<ArrayList<String>> dataLst = new ArrayList<ArrayList<String>>(); /** *//** 得到第一个shell */ Sheet sheet = wb.getSheetAt(0); this.totalRows = sheet.getPhysicalNumberOfRows(); if (this.totalRows >= 1 && sheet.getRow(0) != null) { this.totalCells = sheet.getRow(0).getPhysicalNumberOfCells(); } /** *//** 循环Excel的行 */ for (int r = 0; r < this.totalRows; r++) { Row row = sheet.getRow(r); if (row == null) { continue; } ArrayList<String> rowLst = new ArrayList<String>(); /** *//** 循环Excel的列 */ for (short c = 0; c < this.getTotalCells(); c++) { Cell cell = row.getCell(c); String cellValue = ""; if (cell == null) { rowLst.add(cellValue); continue; } /** *//** 处理数字型的,自动去零 */ if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()) { /** *//** 在excel里,日期也是数字,在此要进行判断 */ if (HSSFDateUtil.isCellDateFormatted(cell)) { cellValue = DateUtil.get4yMdHms(cell.getDateCellValue()); } else { cellValue = getRightStr(cell.getNumericCellValue() + ""); } } /** *//** 处理字符串型 */ else if (Cell.CELL_TYPE_STRING == cell.getCellType()) { cellValue = cell.getStringCellValue(); } /** *//** 处理布尔型 */ else if (Cell.CELL_TYPE_BOOLEAN == cell.getCellType()) { cellValue = cell.getBooleanCellValue() + ""; } /** *//** 其它的,非以上几种数据类型 */ else { cellValue = cell.toString() + ""; } rowLst.add(cellValue); } dataLst.add(rowLst); } return dataLst; } /** *//** * <ul> * <li>Description:[正确地处理整数后自动加零的情况]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @param sNum * @return */ private String getRightStr(String sNum) { DecimalFormat decimalFormat = new DecimalFormat("#.000000"); String resultStr = decimalFormat.format(new Double(sNum)); if (resultStr.matches("^[-+]?\\d+\\.[0]+$")) { resultStr = resultStr.substring(0, resultStr.indexOf(".")); } return resultStr; } /** *//** * <ul> * <li>Description:[测试main方法]</li> * <li>Created by [Huyvanpull] [Jan 20, 2010]</li> * <li>Midified by [modifier] [modified time]</li> * <ul> * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { List<ArrayList<String>> dataLst = new POIExcelUtil() .read("e:/Book1_shao.xls"); for (ArrayList<String> innerLst : dataLst) { StringBuffer rowData = new StringBuffer(); for (String dataStr : innerLst) { rowData.append(",").append(dataStr); } if (rowData.length() > 0) { System.out.println(rowData.deleteCharAt(0).toString()); } } } }
方法2:已通过测试
// 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(fileName); XSSFSheet sheet = null; sheet = xwb.getSheet(sheetName); //int num = xwb.getSheetIndex(sheetName); //sheet = xwb.getSheetAt(num); } // 定义 row、cell XSSFRow row; String cell; // 循环输出表格中的内容 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() 获取单元格内容, cell = row.getCell(j).toString();//获取列数据 System.out.print(cell + "\t"); } System.out.println(""); }
方法3:(若读取excel97---excel2003可试用以下方法,该方法已测试通过)
//该方法根据参数返回该页指定单元格中的内容
public String getExcelCellValueByParams(String fileName, String sheetName, String cellNum){//传入的参数依次为excel文件名、sheet页名称(或sheet页下标)、单元格位置(例如A1、B1) String cellValue = ""; try { String n = fileName.substring(fileName.lastIndexOf(".")+1, fileName .length()); if (n.equalsIgnoreCase("xls")) { jxl.Workbook wb = Workbook.getWorkbook(new File(fileName)); Sheet rs = null; if (isNumeric(sheetName)) {//判断该参数是否为数字 rs = wb.getSheet(Integer.valueOf(sheetName));// 根据下标读取sheet页 } else { rs = wb.getSheet(sheetName);// 根据sheet名称读取该页 } Cell cell = rs.getCell(cellNum); cellValue = cell.getContents(); } } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return cellValue; }
发表评论
-
Springboot中集成Activiti工作流,查看流程进度乱码的问题
2021-12-10 19:51 481[size=medium]流程图乱码问题 问题描述: 本 ... -
Springboot中集成百度ueditor插件
2021-12-10 18:13 900近期,手上的一个项目,用到了文本编辑,现在的后台开源框架 ... -
Illegal use of <when>-style tag without <choose> as its direct paren
2016-06-29 17:48 1346在jsp页面使用c:when标签时,报错 Illegal us ... -
Remember that ordinal parameters are 1-based!
2013-07-30 16:42 2841今天使用Hibernate出个奇怪的错误,第一次碰到 ... -
java下载远程服务器端数据文件
2011-11-24 19:05 3462在java中实现下载远程 ... -
tomcat启动报:严重: IOException while loading persisted sessions: java.io.EOFException
2010-11-04 13:26 1341严重: IOException while loading p ... -
用Axis+MyEclipse自动生成webService
2010-10-15 11:29 3494项目上说是要用到web Service 给其他系统提供接口。然 ... -
解决MyEclipse update progress错误的方法
2010-07-26 13:20 3472方法1: MyEclipse中设置 windows- ... -
quartz在添加任务时所遇到的问题
2009-06-25 12:33 8840日前在项目中使用Quartz进行任务调度,在使用过程中 ... -
Strus常见错误及原因分析
2009-05-24 19:03 1184Strus常见错误及原因分析 本篇文章包含了在用Struts ... -
获取当前系统时间
2009-05-13 10:17 1664package com.sailing.app.test.sx ... -
Unable to load bean org.apache.struts2.dispatcher.
2009-05-04 10:59 6246后台报错日志: 02:40:11,646 ERROR [org ... -
Tomcat下的文件夹介绍
2009-01-06 17:53 3859Tomcat下的文件夹介绍 本人刚加入程序员的行列,对一些技 ... -
java异常:java.net.SocketException: Connection reset
2008-11-19 12:28 28156java.net.SocketException: Conne ... -
启动eclipse时出现java.lang.NoClassDefFoundError:
2008-11-14 11:29 4915!SESSION 2008-11-14 11:17:49.51 ...
相关推荐
在这个场景中,我们将详细探讨如何使用Java POI读取Excel文件中的数据,包括获取总行数、列数、单元格内容、合并单元格、行高、列宽以及图片等信息。 首先,确保在项目中已经引入了Apache POI的依赖库。如果你使用...
Java 使用 POI 读取 Excel 文件 Java 是一种广泛使用的编程语言,而 Excel 是一种常用的电子表格软件。有时候,我们需要在 Java 程序中读取 Excel 文件的内容,例如将 Excel 表格中的数据导入到数据库中或者进行...
本篇文章将详细介绍如何使用 POI 来读取 Excel 文件。 1. **安装与引入 POI** 在使用 POI 之前,你需要先将其添加到你的项目依赖中。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...
在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...
基于新版本的POI编写的读取Excel文件数据的工具类,可根据绝对路径、File对象、InputSteam对象读取解析Excel文件内容,并返回List<List<String>>格式结果,其中包含对单元格公式的处理。
Java 使用 POI 读取 Excel 文件 Java 中使用 Apache POI 库可以轻松地读取 Excel 文件,下面将详细介绍如何使用 POI 读取 Excel 文件。 什么是 Apache POI? Apache POI 是一个开源的 Java 库,由 Apache 软件...
Java 使用 Apache POI 读取 Excel 文件是一种常见的数据处理任务,尤其在数据分析、报表生成以及自动化测试等场景中。Apache POI 是一个流行的开源库,它允许开发者在 Java 应用程序中创建、修改和显示 Microsoft ...
// 使用POI读取Excel文件 XSSFWorkbook workbook = new XSSFWorkbook(is); XSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 for (Row row : sheet) { // 遍历行,处理每个单元格 for (Cell ...
本教程将详细介绍如何使用Apache POI读取Excel文件,并提供一个适合导入数据库的解决方案。 首先,Apache POI提供了一个名为`HSSFWorkbook`的类,用于处理Excel的`.xls`格式(Excel 97-2007格式),而`XSSFWorkbook...
在本示例"Java POI读取Excel文件基本用法Demo"中,我们将深入探讨如何使用Java POI库来读取Excel文件。 首先,我们需要在项目中引入Apache POI的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
总的来说,这段代码展示了如何使用Apache POI读取Excel文件,包括获取单元格内容、处理不同类型的单元格以及格式化日期。在实际项目中,你可以根据需求扩展这个类,例如添加写入Excel、处理多个工作表或支持.xlsx...
### Java使用POI读取Excel文件教程 #### 一、Excel基础 Microsoft Excel 97 文件格式被称为 BIFF8(Binary Interchange File Format),而之后的版本如 Excel 2000、2002 和 2003 对此格式进行了微小的改进。这些...
总结起来,Apache POI为Java开发者提供了一种强大且灵活的方式来处理Excel文件,无论是通过Servlet从服务器生成文件,还是在本地通过main方法创建文件。理解如何使用POI库可以帮助你更好地集成Excel功能到你的Java...
这篇博文主要讲解如何使用Apache POI库来读取Excel文件的内容,无论是2003版的.XLS还是2007版及以后的.XLSX格式。 在Java编程中,Apache POI 提供了丰富的API,使得开发者可以方便地操作Excel文件。首先,我们需要...
除了基本的读取,Apache POI还支持对Excel文件进行更复杂的操作,例如修改单元格内容、添加新行和工作表、设置样式、公式计算等。在实际开发中,你可以根据需求灵活运用这些功能。 这个例子中的"源码"标签意味着你...
在Java编程环境中,如果你需要读取或写入Excel文件,POI 提供了强大的支持。本教程将深入讲解如何使用POI的HSSF组件来处理Excel 97-2003格式的文件(BIFF8格式)。 一、Excel基础 Excel 97 文件格式,也被称作BIFF8...