java 利用jexcelapi操作Excel

      前几天做一项目, 要求将输入的数据保存为Excell形式, 研究了一下poi, 可由于时间关系, 还不能达到保存格式的要求. 也是由于偶然, 发现了jexcelapi, jexcelapi所提供的接口很好, 使用也很方便.

      jexcelapi是一个开源项目,主要用来操作excel.

      下载地址:http://sourceforge.net/project/showfiles.php?group_id=79926

      使用参考资料: http://www.blogjava.net/supercrsky/archive/2008/05/21/201810.html

 

      以下粘贴原博客中的部分代码:

            //** **********创建工作簿************ */
            WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/test.xls"));
            /** *//** **********创建工作表************ */
            WritableSheet sheet = workbook.createSheet("工作表名称", 0);

            /** *//** *********设置列宽**************** */
            sheet.setColumnView(0, 15); // 第1列
            sheet.setColumnView(1, 18); // 第2列

            // 设置行高
            sheet.setRowView( 0 600 false );
            sheet.setRowView(
1 400 false );

            // 设置页边距
            sheet.getSettings().setRightMargin( 0.5 );
           
// 设置页脚
            sheet.setFooter( "" "" " 测试页脚 " );
            
/** */ /**  ************设置单元格字体**************  */
           
// 字体
            WritableFont NormalFont  =   new  WritableFont(WritableFont.ARIAL,  10 );
            WritableFont BoldFont 
=   new  WritableFont(WritableFont.ARIAL,  14 ,
                    WritableFont.BOLD);
            WritableFont tableFont 
=   new  WritableFont(WritableFont.ARIAL,  12 ,
                    WritableFont.NO_BOLD);
            WritableFont baodanFont 
=   new  WritableFont(WritableFont.ARIAL,  10 ,
                    WritableFont.BOLD);

            
/** */ /**  ************以下设置几种格式的单元格************  */
           
//  用于标题
            WritableCellFormat wcf_title  =   new  WritableCellFormat(BoldFont);
            wcf_title.setBorder(Border.NONE, BorderLineStyle.THIN); 
//  线条
            wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_title.setAlignment(Alignment.CENTRE);  //  水平对齐
            wcf_title.setWrap( true );  //  是否换行

           
//  用于表格标题
            WritableCellFormat wcf_tabletitle  =   new  WritableCellFormat(
                    tableFont);
            wcf_tabletitle.setBorder(Border.NONE, BorderLineStyle.THIN); 
//  线条
            wcf_tabletitle.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_tabletitle.setAlignment(Alignment.CENTRE);  //  水平对齐
            wcf_tabletitle.setWrap( true );  //  是否换行

           
//  用于正文左
            WritableCellFormat wcf_left  =   new  WritableCellFormat(NormalFont);
            wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN); 
//  线条
            wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_left.setAlignment(Alignment.LEFT);
            wcf_left.setWrap(
true );  //  是否换行

           
//  用于正文左
            WritableCellFormat wcf_center  =   new  WritableCellFormat(NormalFont);
            wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); 
//  线条
            wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_center.setAlignment(Alignment.CENTRE);
            wcf_center.setWrap(
true );  //  是否换行

           
//  用于正文右
            WritableCellFormat wcf_right  =   new  WritableCellFormat(NormalFont);
            wcf_right.setBorder(Border.ALL, BorderLineStyle.THIN); 
//  线条
            wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_right.setAlignment(Alignment.RIGHT);
            wcf_right.setWrap(
false );  //  是否换行

           
//  用于跨行
            WritableCellFormat wcf_merge  =   new  WritableCellFormat(NormalFont);
            wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); 
//  线条
            wcf_merge.setVerticalAlignment(VerticalAlignment.TOP);  //  垂直对齐
            wcf_merge.setAlignment(Alignment.LEFT);
            wcf_merge.setWrap(
true );  //  是否换行

            WritableCellFormat wcf_table 
=   new  WritableCellFormat(NormalFont);
            wcf_table.setBorder(Border.ALL, BorderLineStyle.THIN); 
//  线条
            wcf_table.setVerticalAlignment(VerticalAlignment.CENTRE);  //  垂直对齐
            wcf_table.setAlignment(Alignment.CENTRE);
            wcf_table.setBackground(Colour.GRAY_25);
            wcf_table.setWrap(
true );  //  是否换行

            
/** */ /**  ************单元格格式设置完成******************  */
           
// 合并单元格,注意mergeCells(col0,row0,col1,row1) --列从0开始,col1为你要合并到第几列,行也一样
            sheet.mergeCells( 0 0 5 0 );

            sheet.addCell(
new  Label( 0 0 " 这里是大标题,自定义格式 " ,
                    wcf_title));

      项目中仅用了以上代码的一部分, 感谢原博客作者的奉献.

      粘在自己博客中也是为了方便以后使用.

      附件中提供jexcelapi_2_6_8.zip 和poi-3.1-beta2-20080526.jar包的下载.

 

你可能感兴趣的:(java,PHP,单元测试,Excel,WCF)