从java读取Excel继续说大道至简

先说一下jxl包,它是通过java操作excel表格的工具类库,并不依赖windows系统平台。

这里我仅仅介绍一下jxl这个包中的几个比较重要的类,因为会了这几个我感觉一般的问题就能够解决,如果还想继续深入的话,可以下载jxl.jar并且进行深入研究,写几个DEMO就能够掌握。


先说一下,Workbook类提供的方法:


1.intgetNumberOfSheets();获得工作薄(Workbook)中工作表(Sheet)的个数,示例:

  1. jxl.Workbook rwb =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. int sheets = rwb.getNumberOfSheets();
 int sheets = rwb.getNumberOfSheets();

2.Sheet[]getSheets();返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:

  1. jxl.Workbook rwb2 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb2 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. Sheet[] sheets2 = (Sheet[]) rwb2.getSheets();
 Sheet[] sheets2 = (Sheet[]) rwb2.getSheets();

3.StringgetVersion();返回正在使用的API的版本号,好像是没什么太大的作用。示例:

  1. jxl.Workbook rwb3 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb3 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. String apiVersion = rwb3.getVersion();
 String apiVersion = rwb3.getVersion();

在说一下,Sheet接口提供的方法


1. StringgetName();获取Sheet的名称,示例:

  1. jxl.Workbook rwb4 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb4 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. jxl.Sheet rs = rwb4.getSheet(0);
 jxl.Sheet rs = rwb4.getSheet(0);
  1. String sheetName = rs.getName();
 String sheetName = rs.getName();

2.intgetColumns();获取Sheet表中所包含的总列数,示例:

  1. jxl.Workbook rwb5 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb5 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. jxl.Sheet rs2 = rwb5.getSheet(0);
 jxl.Sheet rs2 = rwb5.getSheet(0);
  1. int rsColumns = rs2.getColumns();
 int rsColumns = rs2.getColumns();

3.Cell[]getColumn(int column)获取某一列的所有单元格,返回的是单元格对象数组,示例:

  1. jxl.Workbook rwb6 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb6 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. jxl.Sheet rs3 = rwb6.getSheet(0);
 jxl.Sheet rs3 = rwb6.getSheet(0);
  1. Cell[] cell = rs3.getColumn(0);
 Cell[] cell = rs3.getColumn(0);

4.intgetRows()获取Sheet表中所包含的总行数,示例:

  1. jxl.Workbook rwb7 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb7 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. jxl.Sheet rs4 = rwb7.getSheet(0);
 jxl.Sheet rs4 = rwb7.getSheet(0);
  1. int rsRows = rs4.getRows();
 int rsRows = rs4.getRows();

5.Cell[]getRow(int row)获取某一行的所有单元格,返回的是单元格对象数组,示例子:

  1. jxl.Workbook rwb8 = jxl.Workbook.getWorkbook(newFile("D:/user.xls"));
 jxl.Workbook rwb8 = jxl.Workbook.getWorkbook(newFile("D:/user.xls"));
  1. jxl.Sheet rs5 = rwb8.getSheet(0);
 jxl.Sheet rs5 = rwb8.getSheet(0);
  1. Cell[] cell5 = rs5.getRow(0);
 Cell[] cell5 = rs5.getRow(0);

6.CellgetCell(int column, int row);获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,示例:

  1. jxl.Workbook rwb9 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
 jxl.Workbook rwb9 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));
  1. jxl.Sheet rs6 = rwb9.getSheet(0);
 jxl.Sheet rs6 = rwb9.getSheet(0);
  1. Cell cell6 = rs6.getCell(0, 0);
 Cell cell6 = rs6.getCell(0, 0);


有了这些知识之后我们可以做一个简单的demo,经过这个demo之后那么我们就知道怎么用java读取excel表中的数据了。


Demo--代码:

  1. public class aaa {
  2. public static void main(String [] args){
  3. InputStream is;
  4. try {
  5. is = new FileInputStream("C:/Users/CJQ/Desktop/页面模版.xls");
  6. jxl.Workbook rwb = Workbook.getWorkbook(is);
  7. Sheet rsModule=rwb.getSheet(1);
  8. int [] orders= new int[rsModule.getRows()-1];
  9. for(int rsModuleIndex=1;rsModuleIndex<rsModule.getRows();rsModuleIndex++){
  10. Cell[] cellModule = rsModule.getRow(rsModuleIndex);
  11. orders[rsModuleIndex-1]=Integer.parseInt(cellModule[3].getContents());
  12. }
  13. for(int i=0;i<orders.length;i++){
  14. System.out.println(orders[i]);
  15. }
  16. } catch (FileNotFoundException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. } catch (BiffException e) {
  20. // TODO Auto-generated catch block
  21. e.printStackTrace();
  22. } catch (IOException e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. }
  26. }
  27. }
public class aaa {
	public static void main(String [] args){
		InputStream is;
			try {
				is = new FileInputStream("C:/Users/CJQ/Desktop/页面模版.xls");
			
			jxl.Workbook rwb = Workbook.getWorkbook(is);
			
			Sheet rsModule=rwb.getSheet(1);
			int [] orders= new int[rsModule.getRows()-1];
			for(int rsModuleIndex=1;rsModuleIndex<rsModule.getRows();rsModuleIndex++){
				Cell[] cellModule = rsModule.getRow(rsModuleIndex);
				orders[rsModuleIndex-1]=Integer.parseInt(cellModule[3].getContents());
			}

			for(int i=0;i<orders.length;i++){
				System.out.println(orders[i]);
			}

			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	catch (BiffException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
	}
}

Demo--excel表单:


Demo--运行结果截图:


通过这篇博客的讲解,我感觉java读取excel表的问题迎刃而解了,这个问题解决了,那个批量导入的功能也就解决了一部分小问题,等待其他小问题解决了之后,整个的批量导入的功能也就迎刃而解了。大道至简,运用到实践中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值