usstlidawei 2009-10-11
经常要将EXCEL和数据库打交道的话,建议推荐使用一个好的开源工具JXL,下面小结如何将其EXCEL数据导入到数据库,
以及如何把数据库的数据导出到EXCEL.
1)EXCEL的表格导入数据库
假设有一个EXCEL,有两个SHEET,记得第一个sheet序号是0,第2个sheet的序号是1.
importjxl.Cell;
importjxl.Sheet;
importjxl.Workbook;
importjxl.read.biff.BiffException;
主要方法为:InputStream fs = null;
Workbookrbw=null;
try{try {
fs=newFileInputStream(file);
rbw=Workbook.getWorkbook(fs);
System.out.println("加载本地excel文件成功!");
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(BiffExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
Sheetbook=null;
SheetbookSingle=null;
try{
book=rbw.getSheet(0);//第一个sheet
}catch(Exceptione){
e.printStackTrace();
}
System.out.println("取得excel文件sheet成功!");rsRows=book.getRows();//获取第一个sheet表的总行数
for(inti=1;i<rsRows;i++){
//获取excel文件中数据
//第i行第0列
Cellcell0=book.getCell(0,i);
Stringusercode=cell0.getContents();
//第i行第1列
Cellcell1=book.getCell(1,i);
Stringorg_name=cell1.getContents();
}
注意这里的book.getCell(0,i),是从第I行第0列这样写的,就是反过来
2)数据库到EXCEL
Filefile=newFile("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();