jxl,是项目中使用操作xls的东西,这里大概写个总结,说不定将来会用到呢,也说不定能帮到其他人。
安装
在maven中搜索jxl,详见点击打开链接 ,在网页中搜索jxl,发现最新版本是2.6.12,然后在pom.xml中输入
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
保存,即可完成安装。
学习
一、
jxl,是个第三方框架,官网是:http://www.andykhan.com/jexcelapi/,教程是http://www.andykhan.com/jexcelapi/tutorial.html,写得非常清楚
二、
新建xls
WritableWorkbook workbook=Workbook.createWorkbook(new File("e:\\output.xls"));
然后马上加上
workbook.write();
workbook.close();
表示写入表和关闭表,这样改动才能显示出来,国际好习惯。
三、新建sheet:
WritableSheet sheet=workbook.createSheet("我很帅da", 0);
第一个参数是标题,第二个参数是位置。
四、新建内容
jxl里是把一个单元格抽象成一个cell,所以,新建个单元格:
Label label=new Label(transC("A"),transR(3),"a record");
sheet.addCell(label);
其中的transC,和transR函数是我原创的函数,支持列超过26情况,这样写比较直观。
public static int transC(String col){
char[] cols= col.toLowerCase().toCharArray();
int sum=0;
for(int i=cols.length-1;i>=0;i--){
sum+=cols[i]-'a'+(cols.length-1-i)*26;
}
return sum;
}
public static int transR(int row){
if(row>0)
return row-1;
else{
return -1;
}
}
带格式的内容:
WritableCellFormat formate=new WritableCellFormat(new WritableFont(WritableFont.createFont("楷体"), 14,WritableFont.BOLD,true));
Label label2=new Label(transC("A"),transR(1),"我知道",formate);
读取xls
Workbook wb=Workbook.getWorkbook(new File("e:\\test2.xls"));
Sheet sheet=wb.getSheet(0);
Cell a1=sheet.getCell(transC("H"),transR(2));
//Cell a1=sheet.getCell(0,0);
DateCell a11=(DateCell)a1;
Date tesk=a11.getDate();
System.out.println(a1.getType());
Calendar ca=Calendar.getInstance();
ca.setTime(tesk);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(format.format(tesk));
ca.add(Calendar.YEAR, -2);
System.out.println(format.format(ca.getTime()));
wb.close();