Excle数据导入(新手指导)_第1页
Excle数据导入(新手指导)_第2页
Excle数据导入(新手指导)_第3页
Excle数据导入(新手指导)_第4页
Excle数据导入(新手指导)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、package nstek.util.file.Test;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Date;import jxl.Cell;import jxl.CellType;import jxl.DateCell;import jxl.LabelCell;import jxl.NumberCell;import jxl.Sheet;import jxl.Workbook;import j

2、xl.read.biff.BiffException;import jxl.write.WriteException;/* * 代码拉进编辑器看的更加清晰 * author lf * */public class ExcelImp /* * * param args * throws BiffException * throws IOException * throws WriteException */public static void main(String args) throws BiffException, IOException,WriteException / 1 从Excel

3、文件读取数据表/ Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。/ 读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:/ (完整代码见ExcelReading.java)try / 构建Workbook对象, 只读Workbook对象/ 直接从本地文件创建Workbook/ 从输入流创建WorkbookInputStream is = new FileInputStream("C:UserslfDesktopExcel导入1111111111.xls");

4、/文件路径jxl.Workbook rwb = Workbook.getWorkbook(is); /构建workbook工作薄/ 一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段:/ 获取第一张Sheet表Sheet rs = rwb.getSheet(0);/ 我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,/ 要注意的一点是下标从0开始,就像数组一样。/ 一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段:int rsColumns = r

5、s.getColumns();/返回的是单元格行数Cell cell = rs.getColumn(0); /返回的是单元格列数System.out.println("单元格列数"+cell.length);System.out.println("单元格行数"+rsColumns);/ 获取第一行,第一列的值for(int j = 0; j<=cell.length;j+)for(int i = 0;i < rsColumns;i+)/* * 有多少行,就要添加多少次(53-63行),并且对相应的数据类型进行设置就OK了(83-104行),数

6、据库操作自己写去吧 */ 获取第一行,第一列的值Cell c00 = (jxl.Sheet) rs).getCell(i, 0);String strc00 = c00.getContents();/ 获取第一行,第二列的值Cell c10 = (jxl.Sheet) rs).getCell(i, 0);String strc10 = c10.getContents();/ 获取第二行,第二列的值Cell c11 = (jxl.Sheet) rs).getCell(i, 1);String strc11 = c11.getContents();/打印测试/*System.out.println

7、("Cell("+i+", "+i+")" + " value : " + strc00+ " type : " + c00.getType();System.out.println("Cell("+i+", "+i+")" + " value : " + strc10+ " type : " + c10.getType();System.out.println("Cell("

8、+i+", "+i+")" + " value : " + strc11+ " type : " + c11.getType();*/ / 如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,/ 它可以将任何类型的Cell值都作为一个字符串返回。示例代码中Cell(0, 0)是文本型,/ Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。/ 如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片

9、段:String strcc00 = null;double strcc10 = 0.00;Date strcc11 = null;Cell cc00 = (jxl.Sheet) rs).getCell(i, 0);Cell cc10 = (jxl.Sheet) rs).getCell(i, 0);Cell cc11 = (jxl.Sheet) rs).getCell(i, 1);/转化为Stringif (c00.getType() = CellType.LABEL) LabelCell labelc00 = (LabelCell) cc00;strcc00 = labelc00.getSt

10、ring();/转化为Numberif (c10.getType() = CellType.NUMBER) NumberCell numc10 = (NumberCell) cc10;strcc10 = numc10.getValue();/转化为时间if (c11.getType() = CellType.DATE) DateCell datec11 = (DateCell) cc11;strcc11 = datec11.getDate();System.out.println("Cell("+i+", "+i+")" + &quo

11、t; value : " + strcc00+ " type : " + cc00.getType();System.out.println("Cell("+i+", "+i+")" + " value : " + strcc10+ " type : " + cc10.getType();System.out.println("Cell("+i+", "+i+")" + " value : &qu

12、ot; + strcc11+ " type : " + cc11.getType();/ 在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API提供的基本类型相匹配,/ 强制转换成相应的类型,最后调用相应的取值方法getXXX(),就可以得到确定类型的值。/ API提供了以下基本类型,与Excel的数据格式相对应,如下图所示:/ 每种类型的具体意义,请参见Java Excel API Document。/ 当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,/ 以释放读取数据表的过程中所占用的内存空间,在

13、读取大量数据时显得尤为重要。参考如下代码片段:/ 操作完成时,关闭对象,释放占用的内存空间rwb.close(); catch (Exception e) e.printStackTrace();/* * 下边的方法 根据实际应用 做相应调整的方法API */ Java Excel API提供了许多访问Excel数据表的方法,在这里我只简要地介绍几个常用的方法,/ 其它的方法请参考附录中的Java Excel API Document。/ Workbook类提供的方法/ 1. int getNumberOfSheets();/ 获得工作薄(Workbook)中工作表(Sheet)的个数,示例:

14、jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");int sheets = rwb.getNumberOfSheets();/ 2. Sheet getSheets();/ 返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:jxl.Workbook rwb2 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls&qu

15、ot;);Sheet sheets2 = (Sheet) rwb2.getSheets();/ 3. String getVersion();/ 返回正在使用的API的版本号,好像是没什么太大的作用。jxl.Workbook rwb3 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");String apiVersion = rwb3.getVersion();/ Sheet接口提供的方法/ 1) String getName();/ 获取Sheet的名称,示例:jxl.W

16、orkbook rwb4 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");jxl.Sheet rs = rwb4.getSheet(0);String sheetName = rs.getName();/ 2) int getColumns()/ 获取Sheet表中所包含的总列数,示例:jxl.Workbook rwb5 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111

17、.xls");jxl.Sheet rs2 = rwb5.getSheet(0);int rsColumns = rs2.getColumns();/ 3) Cell getColumn(int column)/ 获取某一列的所有单元格,返回的是单元格对象数组,示例:jxl.Workbook rwb6 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");jxl.Sheet rs3 = rwb6.getSheet(0);Cell cell = rs3.getColum

18、n(0);/ 4) int getRows()/ 获取Sheet表中所包含的总行数,示例:jxl.Workbook rwb7 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");jxl.Sheet rs4 = rwb7.getSheet(0);int rsRows = rs4.getRows();/ 5) Cell getRow(int row)/ 获取某一行的所有单元格,返回的是单元格对象数组,示例子:jxl.Workbook rwb8 = jxl.Workbook.getWorkbook(new File("C:UserslfDesktopExcel导入1111111111.xls");jxl.Sheet rs5 = rwb8.getSheet(0);Cell

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论