日期:2014-05-16  浏览次数:20444 次

EXCEL中与数据库打交道的好工具-JXL

经常要将EXCEL和数据库打交道的话,建议推荐使用一个好的开源工具JXL,下面小结如何将其EXCEL数据导入到数据库,
以及如何把数据库的数据导出到EXCEL.

1) EXCEL的表格导入数据库
?? 假设有一个EXCEL,有两个SHEET,记得第一个sheet序号是0,第2个sheet的序号是1.
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

主要方法为:

?? InputStream fs = null;
???Workbook rbw = null;
??? try{

???? ??try {??????
???? ????? fs=new FileInputStream(file);???
???? ????? rbw=Workbook.getWorkbook(fs);
???? ????? System.out.println("加载本地excel文件成功!");???
???? ????? } catch (FileNotFoundException e){
???? ??????? e.printStackTrace();
???? ????? } catch (BiffException e){
???? ??????? e.printStackTrace();
???? ????? } catch (IOException e){
???? ??????? e.printStackTrace();
???? ????? }
? ?????
????
?? ?? Sheet book=null;
?? ?? Sheet bookSingle=null;
?? ?? try{
?? ?? book=rbw.getSheet(0);//第一个sheet
???????? }catch (Exception e){
?? ?? e.printStackTrace();???
?? ?? }
? ?????? System.out.println("取得excel文件sheet成功!");?

?????????rsRows=book.getRows();//获取第一个sheet表的总行数
??????????? for(int i=1;i<rsRows;i++){???
? ???????? //获取excel文件中数据??
? ???????? //第i行第0列
? ??????? Cell cell0 = book.getCell(0, i);
? ??????? String usercode=cell0.getContents();
???????????????????
????????? //第i行第1列
? ??????? Cell cell1 = book.getCell(1, i);
? ??????? String org_name=cell1.getContents();
?????????}
?? 注意这里的book.getCell(0,i),是从第I行第0列这样写的,就是反过来

2) 数据库到EXCEL
?? ?File file=new File("xxx.xls");
?WritableWorkbook book = Workbook.createWorkbook(new File(fileName));

??? // 生成名为“SheetOne”的工作表,参数0表示这是第一个sheet
??? WritableSheet sheet = book.createSheet("SheetOne", 0);

?? // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),以及单元格内容
??????? Label chs_name_LbTitle=new Label(0, 0, "中文名称");

???? ............................................
???????? sheet.addCell(chs_name_LbTitle);

?Label ent_name_cCell=new Label(0, 1, 要写入的实际数据);
sheet.addCell(ent_name_cCell);
?book.write();
??? book.close();

1 楼 hbdrawn 2009-11-30  
不妨看下POI项目,开源的,也是针对excel,很好用呵呵