最近做了需求,从数据库读取数据,分析处理后生成一个excel文件。
搜了下,有二个库还是比较不错的。Apach的POI功能比较强大些,JXL比较小巧,我选择JXL,不需要那么多的功能。
1.读excel
public void read(){
String org = "D:\\test\\org.xls"
try{
FileInputStream fileInputStream = new FileInputStream(org);
Workbook workbook = Workbook.getWorkbook(fileInputStream);
Sheet sheet = workbook.getSheet(0);
Cell cell = sheet.getCell(2, 3); //参数为:列,行
String content = cell.getContents();
workbook.close();
fileInputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
Workbook workbook = Workbook.getWorkbook(fileInputStream);// 获取读Excel的类实例
Sheet sheet = Workbook.getSheet(0); 其中0表示sheet表的索引,从0开始,
Cell cell = sheet.getCell(2,3);其中Cell表示一个单元格,参数为:列,行,从0开始,
2.写入excel
public void write(){
try{
FileOutputStream fileOutputStream = new FileOutputStream(path);
WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileOutputStream);
WritableSheet writableSheet = null;
for(int i=0;i<3;i++){
String sheet = "";
if(i ==0){
sheet = "一季度";
}
else if(i ==1){
sheet = "二季度";
}
else if(i ==2){
sheet = "三季度";
}
writableSheet = writableWorkbook.createSheet(sheet, i);
Label label = new Label(1,1, "财务数据");
writableSheet.addCell(label);
}
writableWorkbook.write();
writableWorkbook.close();
fileOutputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
逻辑:循环创建了3个sheet表,每个表里添加了一个数据。我写的很简单,当然还可以写复杂的。
WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileOutputStream);//创建一个可写的工作簿。
writableSheet = writableWorkbook.createSheet(sheet, i);//创建工作表,参数为: sheet表名称,sheet表索引值。
Label label = new Label(row, col, content);//单元格实例,row行号,col列号,都是从0开始,content为String,单元格内容。
writableSheet.addCell(label);//把单元格加入工作簿
WriteableBook.write();//在最后调用此方法将缓冲写入Excel;
写的简单,但够用实用..............