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();