- 浏览: 208035 次
- 性别:
- 来自: 新疆
文章分类
最新评论
-
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 467[size=medium]流程图乱码问题 问题描述: 本 ... -
Springboot中集成百度ueditor插件
2021-12-10 18:13 872近期,手上的一个项目,用到了文本编辑,现在的后台开源框架 ... -
Illegal use of <when>-style tag without <choose> as its direct paren
2016-06-29 17:48 1340在jsp页面使用c:when标签时,报错 Illegal us ... -
Remember that ordinal parameters are 1-based!
2013-07-30 16:42 2829今天使用Hibernate出个奇怪的错误,第一次碰到 ... -
java下载远程服务器端数据文件
2011-11-24 19:05 3448在java中实现下载远程 ... -
tomcat启动报:严重: IOException while loading persisted sessions: java.io.EOFException
2010-11-04 13:26 1335严重: IOException while loading p ... -
用Axis+MyEclipse自动生成webService
2010-10-15 11:29 3485项目上说是要用到web Service 给其他系统提供接口。然 ... -
解决MyEclipse update progress错误的方法
2010-07-26 13:20 3466方法1: MyEclipse中设置 windows- ... -
quartz在添加任务时所遇到的问题
2009-06-25 12:33 8827日前在项目中使用Quartz进行任务调度,在使用过程中 ... -
Strus常见错误及原因分析
2009-05-24 19:03 1180Strus常见错误及原因分析 本篇文章包含了在用Struts ... -
获取当前系统时间
2009-05-13 10:17 1657package com.sailing.app.test.sx ... -
Unable to load bean org.apache.struts2.dispatcher.
2009-05-04 10:59 6238后台报错日志: 02:40:11,646 ERROR [org ... -
Tomcat下的文件夹介绍
2009-01-06 17:53 3853Tomcat下的文件夹介绍 本人刚加入程序员的行列,对一些技 ... -
java异常:java.net.SocketException: Connection reset
2008-11-19 12:28 28149java.net.SocketException: Conne ... -
启动eclipse时出现java.lang.NoClassDefFoundError:
2008-11-14 11:29 4901!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 软件...
以下是一个简单的示例代码片段,展示了如何使用Apache POI读取Excel文件中的数据并保留格式: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java....
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...