Workbook类提供的方法
全面挖掘Java Excel API 使用方法 | |||||||||||||
文章转载于http://www.weste.net/2004/12-9/11191942947-2.html | |||||||||||||
作者:songnf2000 发布时间:2004-12-9 11:19:19 文章来源:java尽在matrix | |||||||||||||
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电子表格。 接下来就是要创建工作表,创建工作表的方法与创建工作薄的方法几乎一样,同样是通过工厂模式方法获得相应的对象,该方法需要两个参数,一个是工作表的名称,另一个是工作表在工作薄中的位置,参考下面的代码片段:
这里有两点大家要引起大家的注意。第一点,在构造单元格时,单元格在工作表中的位置就已经确定了。一旦创建后,单元格的位置是不能够变更的,尽管单元格的内容是可以改变的。第二点,单元格的定位是按照下面这样的规律(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()方法,将更新的内容写入到文件中,然后关闭工作薄对象,这里有两个工作薄对象要关闭,一个是只读的,另外一个是可写入的。 |
Workbook类提供的方法相关推荐
- java Workbook接口 提供的方法
完整路径: Workbook类提供的方法 1. int getNumberOfSheets() 获得工作薄(Workbook)中工作表(Sheet)的个数,示例: jxl.Workbook rwb = ...
- java查询类提供的方法_查询一个类的方法和构建器的JAVA程序
查询一个类的方法和构建器的JAVA程序 JAVA语言的类库中的类不计其数,其中设计的方法更是不胜其多,这是任何一个教科书--无论它是多么详尽--所不能穷尽的.如果我们要使用某个类,要查询它的构建器的用 ...
- python PyQt5 Signal类 (Signal类提供了一种以pythonic方式声明和连接Qt信号的方法)(connect()、disconnect()、emit())
https://doc.qt.io/qtforpython/PySide2/QtCore/Signal.html?highlight=connect#PySide2.QtCore.Signal.con ...
- 2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被
2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出"方法 metho ...
- 设计一个类代表二维空间的一个点,设计一个类代表二维空间的一个圆。要求两个成员变量。一个是圆心,一 个是半径,提供计算面积的方法。为上述Cricle类添加一个方法,计算一个点(Point)是否在圆内
(1) 设计一个类代表二维空间的一个点 (2) 设计一个类代表二维空间的一个圆.要求两个成员变量.一个是圆心,一 个是半径,提供计算面积的方法. (3) 为上述Cricle类添加一个方法,计算一个点( ...
- 利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu
利用二维数组(double[])实现一个矩阵类:Matrix.要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu ...
- 关于JAVA的String类的一些方法
一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str="This is a String"; int len =str.le ...
- Object类中有哪些方法
2019独角兽企业重金招聘Python工程师标准>>> Object类中的方法介绍 类Object是类层次结构的根类,每一个类都使用Object作为超类,所有对象(包括数组)都实现这 ...
- 获得MFC窗口其它类指针的方法
获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得C ...
最新文章
- 摩尔定律行将就木?AI灵丹助其返老还童!(附论文)
- vSphere企业运维:从入门到提高【学习路线图】
- 在Ring3上实现文件碎甲(解锁)功能
- module ‘tensorflow‘ has no attribute ‘Tensor‘
- centos7下使用yum安装mysql并创建用户,数据库以及设置远程访问
- 22-高级特性之内建方法(3)
- 分隔线演练-利用参数增加分隔线的灵活度
- 如何在WebPart中访问页面上的其他WebPart
- android中按一个按钮弹出字,允许用户在Android中长按一次即可编辑按钮文字
- 多媒体技术开发迎来新常态
- 回收站引发ORACLE查询表空间使用缓慢
- 【转载】对SVM的个人理解---浅显易懂
- perl语言简单入门
- 2022年危险化学品生产单位安全生产管理人员试题模拟考试平台操作
- Google 翻译插件不能用了怎么办
- 支付宝和淘宝网的一些伦理道德问题
- 迷宫算法总结(最短路径)
- 直播回顾|论道原生:云原生时代的中间件
- 图解SQL面试题:经典30题,数据分析人求职必考,强烈推荐收藏
- Unity游戏开发客户端面经——lua(初级)