`
newleague
  • 浏览: 1472733 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

jxl操作excel(二)

阅读更多

二、单元格操作

 Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI
 
提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API

 1、 合并单元格

  WritableSheet.mergeCells(  int   m,  int   n,  int   p,  int   q); 

   //  作用是从(m,n)(p,q)的单元格全部合并,比如:  
   WritableSheet sheet  =  book.createSheet(“第一页,  0  );

   //  合并第一列第一行到第六列第一行的所有单元格  
   sheet.mergeCells(  0  ,  0  ,  5  ,  0  );

 合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

 2、 行高和列宽

  WritableSheet.setRowView(  int   i,  int   height);

   //  作用是指定第i+1行的高度,比如:

   //  将第一行的高度设为200  
   sheet.setRowView(  0  ,  200  );

 WritableSheet.setColumnView(  int   i,  int   width);

   //  作用是指定第i+1列的宽度,比如:

   //  将第一列的宽度设为30  
   sheet.setColumnView(  0  ,  30  );

 jExcelAPI还有其他的一些功能,比如插入图片等,这里就不再一一介绍,读者可以自己探索。

其中:如果读一个excel,需要知道它有多少行和多少列,如下操作:

 Workbook book   =   Workbook.getWorkbook(  new   File(  "  测试1.xls  "  ));
          //   获得第一个工作表对象  
          Sheet sheet   =   book.getSheet(  0  );
          //   得到第一列第一行的单元格  
            int   columnum   =   sheet.getColumns();  //   得到列数  
            int   rownum   =   sheet.getRows();  //   得到行数  
          System.out.println(columnum);
        System.out.println(rownum);
          for   (  int     =     0  ; i   <   rownum; i  ++  )  //   循环进行读写  
            {
              for   (  int     =     0  ; j   <   columnum; j  ++    {
                Cell cell1   =   sheet.getCell(j, i);
                String result   =   cell1.getContents();
                System.out.print(result);
                System.out.print(  "  \t  "  );
            }  
            System.out.println();
        }  
        book.close();

 

 

另外,写入数据格式,可参考: 

1)添加的字体样式 
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true); 
   WritableFont()
方法里参数说明: 
这个方法算是一个容器,可以放进去好多属性 
第一个: TIMES是字体大小,他写的是18 
第二个: BOLD是判断是否为斜体,选择true时为斜体 
第三个: ARIAL 
第四个: UnderlineStyle.NO_UNDERLINE 下划线 
第五个: jxl.format.Colour.RED 字体颜色是红色的 

jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf); 

jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell"
wcfF); 
ws.addCell(labelC); 
  
Label()方法里面有三个参数 
第一个是代表列数
第二是代表行数, 
第三个代表要写入的内容 
第四个是可选项,是输入这个label里面的样式 
然后通过写sheet的方法addCell()把内容写进sheet里面。 

2)添加带有formattingNumber对象 
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); 


3)添加Number对象 
3.1)显示number对象数据的格式 

jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); 
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf); 

jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); 
ws.addCell(labelNF); 
   Number()
方法参数说明
前两上表示输入的位置 
第三个表示输入的内容 


4)添加Boolean对象 
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false); 
ws.addCell(labelB); 


5)添加DateTime对象 
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date()); 
ws.addCell(labelDT); 
  DateTime()
方法的参数说明 
前两个表示输入的位置 
第三个表示输入的当前时间 


6)添加带有formattingDateFormat对象 
这个显示当前时间的所有信息,包括年月日小时分秒 
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss"); 
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df); 
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF); 
ws.addCell(labelDTF); 

7)添加带有字体颜色Formatting的对象 
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); 
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 

import="jxl.format.* 
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN); 

8)设置单元格样式 

jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 
wcfFC.setBackGround(jxl.format.Colour.RED);//
设置单元格的颜色为红色 
wcfFC = new jxl.write.Label(6,0,"i love china",wcfFC);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics