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() + " \t");
}
// 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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号