Posted on 2009-04-12 13:57
ytl 阅读(421)
评论(0) 编辑 收藏 所属分类:
Others
Java处理Excel数据有很多方式,如Apache的POI或JXL等.
我首先给出一个Excele数据的读入的方式(使用的是jxl.jar包)
package com.ccniit.readexcel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;


public class ExcelHander
{


public static String[] getColName(String desc)
{
InputStream is = null;
String[] colNames = null;

try
{
is = new FileInputStream(new File(desc));
Workbook wb = Workbook.getWorkbook(is);
Sheet sheet = wb.getSheet(0);
int cols = sheet.getColumns();
colNames = new String[cols];

for (int i = 0; i < cols; i++)
{
colNames[i] = sheet.getCell(i, 0).getContents();
// System.out.println("列名: " + colNames[i]);
}
is.close();

} 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();
}
return colNames;

}


public List<Map<String, Object>> readExcel(String desc)
{
List<Map<String, Object>> datas = null;

try
{
InputStream is = new FileInputStream(new File(desc));
Workbook wb = Workbook.getWorkbook(is);

if(wb == null)
{
return null;
}
Sheet sheet = wb.getSheet(0);
int cols = sheet.getColumns();
int rows = sheet.getRows();
datas = new ArrayList<Map<String, Object>>();

for (int i = 1; i < rows; i++)
{
Map<String, Object> data = new HashMap<String, Object>();

for (int j = 0; j < cols; j++)
{
String key = sheet.getCell(j, 0).getContents();
// System.out.println("key:" + key);
Object value = (Object) sheet.getCell(j, i).getContents();
// System.out.println("value:" + value.toString());
data.put(key, value);
}
datas.add(data);
}
is.close();
wb.close();

} catch (FileNotFoundException e)
{
e.printStackTrace();

} catch (BiffException e)
{
e.printStackTrace();

} catch (IOException e)
{
e.printStackTrace();
}
return datas;
}

}
