zoukankan      html  css  js  c++  java
  • NCUAP 利用java自带方法实现导入excel取数据

    final JComponent parent = getModel().getContext().getEntranceUI();
    		JFileChooser  chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
    		chooser.setFileFilter(new FileFilter() {
    			
    			@Override
    			public String getDescription() {
    				// 设置选择类型
    				return "97~2003 Excel";
    			}
    			
    			@Override
    			public boolean accept(File f) {
    				// 过滤文件类型
    				if(f.isDirectory())
    					return true;
    				String fileName = f.getName();
    				int i =fileName.lastIndexOf(".");
    				if(fileName.substring(i+1).equalsIgnoreCase("xls")){
    					return true;
    				}
    				return false;
    			}
    		});
    		chooser.showOpenDialog(null);
    		File file = chooser.getSelectedFile();
    		if(file == null)
    			return;
    		InputStream is = new FileInputStream(file);
    		// 2、声明工作簿对象
    		Workbook rwb = Workbook.getWorkbook(is);
    		// 3、获得工作簿的个数,对应于一个excel中的工作表个数
    		rwb.getNumberOfSheets();
    		Sheet oFirstSheet = rwb.getSheet(0);// 使用索引形式获取第一个工作表,也可以使用rwb.getSheet(sheetName);其中sheetName表示的是工作表的名称
    		// System.out.println("工作表名称:" + oFirstSheet.getName());
    		ArrayList<HashMap<String, Object>> arraylist = new ArrayList<HashMap<String,Object>>();
    //		HashMap<String, String[]> dataMap =new HashMap<String, String[]>();
    		int rows = oFirstSheet.getRows();// 获取工作表中的总行数
    		int columns = oFirstSheet.getColumns();// 获取工作表中的总列数
    		String[] title = new String[columns];
    		for (int i = 0; i < rows; i++) {
    			HashMap<String, Object> hashMap = new HashMap<String, Object>();
    			String[] data = new String[columns];
    			for (int j = 0; j < columns; j++) {
    				Cell cell = oFirstSheet.getCell(j, i);// 需要注意的是这里的getCell方法的参数,第一个是指定第几列,第二个参数才是指定第几行
    				// 表体第一行不put hashMap
    				if(i==0){
    					title[j]=cell.getContents();
    				}else{
    					hashMap.put(title[j],cell.getContents());
    				}
    				data[j]=cell.getContents();
    				System.out.print(cell.getContents() + " 	");
    			}
    //			if(i==0){
    //				dataMap.put("title", data);
    //			}else{
    //				dataMap.put((i+1)+"", data);
    //			}
    			if(!hashMap.isEmpty()){
    				arraylist.add(hashMap);
    			}
    			System.out.println("");
    		}
    

      


    作者:冬瓜茶饮料
    出处:http://www.cnblogs.com/dongguacha/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    HDU 2089 不要62
    HDU 5038 Grade(分级)
    FZU 2105 Digits Count(位数计算)
    FZU 2218 Simple String Problem(简单字符串问题)
    FZU 2221 RunningMan(跑男)
    FZU 2216 The Longest Straight(最长直道)
    FZU 2212 Super Mobile Charger(超级充电宝)
    FZU 2219 StarCraft(星际争霸)
    FZU 2213 Common Tangents(公切线)
    FZU 2215 Simple Polynomial Problem(简单多项式问题)
  • 原文地址:https://www.cnblogs.com/dongguacha/p/7229256.html
Copyright © 2011-2022 走看看