- 浏览: 94716 次
- 性别:
- 来自: 济南
最新评论
-
fightingIOW:
案例看了,能实现上传,但是不是异步的,怎么改成页面可以预览呢? ...
swfUpload实例 -
kizz:
您好,实例我看了,确实不错。您有struts2版的吗?现在项目 ...
swfUpload实例
一个从网上下载的很好的excel操作资料!
1 从Excel文件读取数据表
Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading.java)
|
一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段:
|
我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。
一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段:
|
如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,它可以将任何类型的Cell值都作为一个字符串返回。示例代码中Cell(0, 0)是文本型,Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。
如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片段:
|
在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的取值方法getXXX(),就可以得到确定类型的值。API提供了以下基本类型,与Excel的数据格式相对应,如下图所示:
每种类型的具体意义,请参见Java Excel API Document。
当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。参考如下代码片段:
|
Java Excel API提供了许多访问Excel数据表的方法,在这里我只简要地介绍几个常用的方法,其它的方法请参考附录中的Java Excel API Document。
Workbook类提供的方法
1. int getNumberOfSheets()
获得工作薄(Workbook)中工作表(Sheet)的个数,示例:
|
2. Sheet[] getSheets()
返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:
|
3. String getVersion()
返回正在使用的API的版本号,好像是没什么太大的作用。
|
Sheet接口提供的方法
1) String getName()
获取Sheet的名称,示例:
|
2) int getColumns()
获取Sheet表中所包含的总列数,示例:
|
3) Cell[] getColumn(int column)
获取某一列的所有单元格,返回的是单元格对象数组,示例:
|
4) int getRows()
获取Sheet表中所包含的总行数,示例:
|
5) Cell[] getRow(int row)
获取某一行的所有单元格,返回的是单元格对象数组,示例子:
|
6) Cell getCell(int column, int row)
获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,这与通常的行、列组合有些不同。
|
2 生成新的Excel工作薄
下面的代码主要是向大家介绍如何生成简单的Excel工作表,在这里单元格的内容是不带任何修饰的(如:字体,颜色等等),所有的内容都作为字符串写入。(完整代码见ExcelWriting.java)
与读取Excel工作表相似,首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象,这里要注意的是,只能通过 API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,因为类WritableWorkbook的构造函数为protected类型。示例代码片段如下:
|
API提供了两种方式来处理可写入的输出流,一种是直接生成本地文件,如果文件名不带全路径的话,缺省的文件会定位在当前目录,如果文件名带有全路径的话,则生成的Excel文件则会定位在相应的目录;另外一种是将Excel对象直接写入到输出流,例如:用户通过浏览器来访问Web服务器,如果 HTTP头设置正确的话,浏览器自动调用客户端的Excel应用程序,来显示动态生成的Excel电子表格。
接下来就是要创建工作表,创建工作表的方法与创建工作薄的方法几乎一样,同样是通过工厂模式方法获得相应的对象,该方法需要两个参数,一个是工作表的名称,另一个是工作表在工作薄中的位置,参考下面的代码片段:
|
"这锅也支好了,材料也准备齐全了,可以开始下锅了!",现在要做的只是实例化API所提供的Excel基本数据类型,并将它们添加到工作表中就可以了,参考下面的代码片段:
|
这里有两点大家要引起大家的注意。第一点,在构造单元格时,单元格在工作表中的位置就已经确定了。一旦创建后,单元格的位置是不能够变更的,尽管单元格的内容是可以改变的。第二点,单元格的定位是按照下面这样的规律(column, row),而且下标都是从0开始,例如,A1被存储在(0, 0),B1被存储在(1, 0)。
最后,不要忘记关闭打开的Excel工作薄对象,以释放占用的内存,参见下面的代码片段:
|
这可能与读取Excel文件的操作有少少不同,在关闭Excel对象之前,你必须要先调用write()方法,因为先前的操作都是存储在缓存中的,所以要通过该方法将操作的内容保存在文件中。如果你先关闭了Excel对象,那么只能得到一张空的工作薄了。
3 拷贝、更新Excel工作薄
接下来简要介绍一下如何更新一个已经存在的工作薄,主要是下面二步操作,第一步是构造只读的Excel工作薄,第二步是利用已经创建的Excel工作薄创建新的可写入的Excel工作薄,参考下面的代码片段:(完整代码见ExcelModifying.java)
|
之所以使用这种方式构建Excel对象,完全是因为效率的原因,因为上面的示例才是API的主要应用。为了提高性能,在读取工作表时,与数据相关的一些输出信息,所有的格式信息,如:字体、颜色等等,是不被处理的,因为我们的目的是获得行数据的值,既使没有了修饰,也不会对行数据的值产生什么影响。唯一的不利之处就是,在内存中会同时保存两个同样的工作表,这样当工作表体积比较大时,会占用相当大的内存,但现在好像内存的大小并不是什么关键因素了。
一旦获得了可写入的工作表对象,我们就可以对单元格对象进行更新的操作了,在这里我们不必调用API提供的add()方法,因为单元格已经于工作表当中,所以我们只需要调用相应的setXXX()方法,就可以完成更新的操作了。
尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,以使单元格的内容以不同的形式表现。
新生成的工作表对象是可写入的,我们除了更新原有的单元格外,还可以添加新的单元格到工作表中,这与示例2的操作是完全一样的。
最后,不要忘记调用write()方法,将更新的内容写入到文件中,然后关闭工作薄对象,这里有两个工作薄对象要关闭,一个是只读的,另外一个是可写入的。
- java导入excel表格.rar (40 KB)
- 下载次数: 6
发表评论
-
flashPaper转换swf代码 java
2011-09-08 16:12 2859// 使用flashPaper进行 ... -
自主项目安装部署(包含文档)
2011-09-08 15:21 12221. 安装Oracle 1.1运行安装Oracl ... -
oracle 循环插入数据
2011-09-05 17:53 833declarev_LoopCounter Binary_Int ... -
oracle数据库自动备份
2011-09-05 16:13 454把/opt/oraBakSH目录权限放开:chmod -R 7 ... -
后台验证struts2的上传文件大小
2011-08-05 17:06 2165/** * 返回值true表示验证文件大小通过<br/ ... -
tomcat虚拟目录配置(lunix/windows)
2011-08-03 10:50 765虚拟目录的配置: 在</host>的前面添加: ... -
myeclipse6.5 注册码生成器
2011-07-25 09:30 1093解决开发工具myEclipse6.5 注册码过期问题 ... -
本项目中使用添加收藏和设置首页
2011-07-23 14:41 746调用链接: <a href="javascr ... -
常用的网页播放器代码
2011-07-22 16:15 921常用的网页播放器代 ... -
orale不同数据库之间,表数据的转存
2011-07-21 16:27 965不同数据库之间,数据移行 目标: 在oracle数据库 ... -
解决点击页面的查询后,刷新页面,会弹出浏览器自带的对话框
2011-07-20 17:28 9201. 现象:点击页面的查询后,刷新页面,会弹出浏览器自带的对话 ... -
防刷新重复提交 action配置(防乱码) js防刷
2011-07-20 11:35 26771. 现象:在我们系统中,新增、编辑数据后,继续刷新页面后,会 ... -
swfUpload实例
2011-07-19 13:50 10310很好的实例: 官方网站: http://swfup ... -
图片轮播js及调用
2011-07-08 10:54 16921. 图片轮播所需js // JavaScript Docu ... -
设置首页和添加收藏夹
2011-07-06 09:30 951// JavaScript Document /* *Ç ... -
枚举的使用 实例
2011-06-17 15:44 753package utils; import java.uti ... -
js 判断文件时候为空
2011-06-16 17:30 3332/** * 初始化 选择试题列表页面,判断复选框是否选中 ** ... -
struts2 下的文件下载
2011-06-16 17:28 905推荐:Struts 2中实现文件下载(修正中文问题)http: ... -
解决linux下oracle导入数据中文乱码方案
2011-05-25 09:53 1854<script type="text/ ... -
Oracle查询用户所有表的语句
2011-05-19 13:46 1386下面为您介绍的语句用于实现Oracle查询用户所有表,如 ...
相关推荐
综上所述,Java导入Excel文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。
在Java开发中,将Excel表格数据导入MySQL数据库是一项常见的任务,尤其在数据处理、数据分析以及系统集成等场景中。这个项目提供了一套完整的源码,可以直接在Eclipse环境中运行,帮助开发者快速实现这一功能。下面...
在Java开发中,处理Excel数据是一项常见的任务,尤其是在数据导入导出、数据分析或者报表生成等场景。Apache POI是一个流行的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(....
以上就是关于“Java导入Excel到数据库”的详细知识点,涵盖了文件路径配置、合并单元格处理、数据库连接、Excel操作和数据导入等多个方面。这个过程需要对Java、数据库操作以及Excel处理有深入理解,才能有效地完成...
测试环境:java 1.8 + poi 3.17+tomcat jar列表: commons-codec-1.10.jar commons-collections4-4.1.jar commons-fileupload-1.3.1.jar lib/commons-io-2.5.jar commons-lang-2.3.jar poi-3.17.jar poi-ooxml-3.17....
本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助你全面理解这一技术。 首先,Java与Excel的交互通常依赖于第三方库,如Apache POI或JExcelAPI。Apache POI是目前最常用的一个,它提供了丰富的...
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据,导出数据到Excel,Excel文件不存在会创建。 博客:https://blog.csdn.net/qq_37902949/article/details/81230640
在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入和导出的场景下。...这个"java导入Excel的同时导入图片-测试demo"应该包含了一个完整的示例,演示了上述步骤,你可以根据这个示例代码进行学习和实践。
综上所述,完成“Java导入Excel到SQL Server 2008”的任务涉及到多个Java和数据库技术的结合使用,包括文件I/O、数据处理、数据库连接、事务控制以及用户交互等。在实际开发中,还需要考虑错误处理、日志记录、代码...
Excel源代码,导入导出各种工具类 <groupId>org.apache.poi <artifactId>poi <groupId>org.apache.poi <artifactId>poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....
用Java实现的Excel的导入导出,简洁明了,高质量代码。
在本例中,我们需要关注的焦点是“Java导入excel文件的jar包”,这涉及到Java与Excel交互的核心库——Apache POI。 Apache POI是一个流行的开源项目,它允许Java开发者创建、修改和显示Microsoft Office格式的文件...
在Java编程环境中,导入Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化测试等领域。本项目提供了一个完整的解决方案,帮助开发者实现这一功能。下面将详细解释这个Java项目中涉及的关键知识点,...
"java导入Excel需要的jar包"这个话题,就是关于在Java项目中使用特定的jar包来处理Excel文件。下面将详细介绍相关的知识点。 1. **Apache POI**: Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的...
在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...
java导入excel工具包2.0。修改了许多BUG,增加了许多功能
在Java编程环境中,处理Excel数据并将其导出是一项常见的任务,尤其在数据分析、报表生成或者数据交换等场景中。Excel文件格式(.xlsx或.xls)因其直观易用和广泛支持而受到青睐。在这个主题中,我们将深入探讨如何...
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
在文档`java导入excel.docx`中,可能会包含更详细的代码示例和步骤说明,你可以参考这个文档来完善你的程序。总的来说,利用Java和正确的库,你可以轻松地将Excel数据导入到各种数据库系统中,实现高效的数据处理。