您的位置:首页 > 编程语言 > Java开发

jxl使用总结(java 操作xls神器)

2015-11-02 16:27 253 查看
      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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jxl java