`
thinktothings
  • 浏览: 782512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jxl 各数据类型格式配置

阅读更多

package com.tht.common.xls;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.List;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.NumberFormats;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import com.tht.common.date.util.ThtCalendar;
import com.tht.common.db.base.BaseDao;
import com.tht.sendmaill.weak.dao.SBCCDRDAO;
import com.tht.sendmaill.weak.vo.DayOfWeekVO;
import com.tht.sendmaill.weak.vo.SBCCDRVO;

public class WeekXLS extends BaseDao<WeekXLS>{
 
 private static  int final_columnNum=0;
 private static  int total_columnNum=0;
 private static  int final_titleRow=5;
 
 public Integer addColumn(Integer columnValue,int difference){
  columnValue=columnValue+difference;
        System.out.println(columnValue);
        return columnValue;
 }
 
 /**
  *
  * @param filePath  生成xls的文件路径
  * @param sqlQuality  是小时,还是一天的   Hour(小时)  Day(天)
  * @param sqlPath  执行sql 的路径
  * @param strTitle  xls文件中的表格标题
  * @throws Exception
  */
  public boolean writeXLS(String filePath,String sqlQuality,String sqlPath,String strTitle,String strBigTitle,String trunkSmallTitle,String vc2groupinfo,int final_titleRow_) throws Exception{

   jxl.format.Colour excelColour=Colour.GREY_25_PERCENT;
   WritableWorkbook workbook=null;
   WritableSheet sheet=null;
  
   if("1".equals(sqlQuality)){
    final_columnNum=0;
    final_titleRow=final_titleRow_;
    workbook = Workbook.createWorkbook(new File(filePath));
    sheet =workbook.createSheet(new ThtCalendar().getSimpleDate(), 0);
   }else{
    final_columnNum=0;
    final_titleRow=final_titleRow_;
    Workbook wb=Workbook.getWorkbook(new File(filePath));
        workbook = Workbook.createWorkbook(new File(filePath),wb);
        sheet=workbook.getSheet(0);
   }
         //标题 columnNum  行列号  titleRow标题行
    //初使值
   int columnNum=final_columnNum,titleRow=final_titleRow;//第5行开始
  
 
  
  

   sheet.setColumnView(columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
   sheet.setColumnView(++columnNum, 25);//第一列的宽度
  
      
          //格式
          //标题格式  start
          WritableFont arial18ptBoldItalicUnderline = new WritableFont
          (WritableFont.ARIAL,
           9,
           WritableFont.BOLD,
           false,
           UnderlineStyle.NO_UNDERLINE);
         
          WritableCellFormat greyBackground = new WritableCellFormat(arial18ptBoldItalicUnderline);
          WritableCellFormat noBackground = new WritableCellFormat(arial18ptBoldItalicUnderline);
       
          noBackground.setWrap(false);
         // noBackground.setBackground(Colour.GRAY_50);
          //noBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          noBackground.setAlignment(Alignment.CENTRE);
         
         
          WritableCellFormat noRightBackground = new WritableCellFormat(arial18ptBoldItalicUnderline);
        
          noRightBackground.setWrap(false);
         // noBackground.setBackground(Colour.GRAY_50);
          noRightBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          noRightBackground.setAlignment(Alignment.RIGHT);
         
          greyBackground.setWrap(false);
          greyBackground.setBackground(excelColour);
          greyBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          greyBackground.setAlignment(Alignment.CENTRE);
         
         
          //大标题样式
          WritableFont bigTitleFont = new WritableFont
          (WritableFont.ARIAL,
           12,
           WritableFont.BOLD,
           false,
           UnderlineStyle.NO_UNDERLINE);
         
          WritableFont smallBackground = new WritableFont
          (WritableFont.ARIAL,
           9,
           WritableFont.BOLD,
           false,
           UnderlineStyle.NO_UNDERLINE);
         
         
         
          WritableCellFormat bigGreyBackground = new WritableCellFormat(bigTitleFont);
          bigGreyBackground.setWrap(false);
          bigGreyBackground.setBackground(excelColour);
          bigGreyBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          bigGreyBackground.setAlignment(Alignment.CENTRE);
         
         
         
         
          WritableCellFormat smallTitleBackground = new WritableCellFormat(smallBackground);
          smallTitleBackground.setWrap(false);
          smallTitleBackground.setBackground(excelColour);
          smallTitleBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          smallTitleBackground.setAlignment(Alignment.CENTRE);
         
         
          WritableCellFormat bigNoBackground = new WritableCellFormat(bigTitleFont);
          bigNoBackground.setWrap(false);
          //bigGreyBackground.setBackground(excelColour);
         // bigGreyBackground.setBorder(Border.ALL, BorderLineStyle.THIN);
          bigNoBackground.setAlignment(Alignment.CENTRE);
         
          //日期格式
          jxl.write.DateFormat dfsss = new jxl.write.DateFormat("yyyy-MM-dd hh:mm");
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm");
          WritableCellFormat dataFormat = new WritableCellFormat(dfsss);
          dataFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
          DateTime dt=null;
         
          //文本样式
          WritableFont contentFont = new WritableFont
          (WritableFont.ARIAL,
           9,
           WritableFont.NO_BOLD,
           false,
           UnderlineStyle.NO_UNDERLINE);
          WritableCellFormat contentFormat = new WritableCellFormat (contentFont); 
          contentFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
         
          //红色字体样式
          WritableFont red = new WritableFont(WritableFont.ARIAL,
                   9,
                   WritableFont.BOLD,
                   false,
                   UnderlineStyle.NO_UNDERLINE,
                   Colour.RED);
         
          //红色字体样式
          WritableFont blue = new WritableFont(WritableFont.ARIAL,
                   9,
                   WritableFont.BOLD,
                   false,
                   UnderlineStyle.NO_UNDERLINE,
                   Colour.BLUE);
           //WritableCellFormat redContentFormat = new WritableCellFormat(red); 
           //redContentFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
    
         
            //数字格式  0.00
             NumberFormat doubleFormat=new NumberFormat("0.00");
             WritableCellFormat doublewcf=new WritableCellFormat(contentFont,doubleFormat);
             doublewcf.setBorder(Border.ALL, BorderLineStyle.THIN);


             //红色字体的数字格式  0.00
             NumberFormat redDoubleFormat=new NumberFormat("+0.00");
             WritableCellFormat redDoublewcf=new WritableCellFormat(red,redDoubleFormat);
             redDoublewcf.setBorder(Border.ALL, BorderLineStyle.THIN);

             //蓝色字体的数字格式  0.00
             NumberFormat blueDoubleFormat=new NumberFormat("0.00");
             WritableCellFormat blueDoublewcf=new WritableCellFormat(blue,blueDoubleFormat);
             blueDoublewcf.setBorder(Border.ALL, BorderLineStyle.THIN);
            
           //数字格式  0.0000
             NumberFormat doubleFormat2=new NumberFormat("0.0000");
             WritableCellFormat doublewcf2=new WritableCellFormat(contentFont,doubleFormat2);
             doublewcf2.setBorder(Border.ALL, BorderLineStyle.THIN);
            
            
             //红色字体的数字格式  0.0000
             NumberFormat redDoubleFormat2=new NumberFormat("+0.0000");
             WritableCellFormat redDoublewcf2=new WritableCellFormat(red,redDoubleFormat2);
             redDoublewcf2.setBorder(Border.ALL, BorderLineStyle.THIN);

             //蓝色字体的数字格式  0.0000
             NumberFormat blueDoubleFormat2=new NumberFormat("0.0000");
             WritableCellFormat blueDoublewcf2=new WritableCellFormat(blue,blueDoubleFormat2);
             blueDoublewcf2.setBorder(Border.ALL, BorderLineStyle.THIN);

         
            
            
             //数字格式  0%
             NumberFormat doubleFormat3=new NumberFormat("0%");
             WritableCellFormat doublewcf3=new WritableCellFormat(contentFont,doubleFormat3);
             doublewcf3.setBorder(Border.ALL, BorderLineStyle.THIN);


             //红色字体的数字格式  0.00 %
             NumberFormat redDoubleFormat3=new NumberFormat("+0.00%");
             WritableCellFormat redDoublewcf3=new WritableCellFormat(red,redDoubleFormat3);
             redDoublewcf3.setBorder(Border.ALL, BorderLineStyle.THIN);

             //蓝色字体的数字格式  0.00
             NumberFormat blueDoubleFormat3=new NumberFormat("0.00%");
             WritableCellFormat blueDoublewcf3=new WritableCellFormat(blue,blueDoubleFormat3);
             blueDoublewcf3.setBorder(Border.ALL, BorderLineStyle.THIN);
         
         
        
 
             columnNum=final_columnNum;
            
           Label titleLab=new Label(columnNum,titleRow,"FlOW_OUT_SRC_IP",greyBackground);
           sheet.addCell(titleLab);
          
           titleLab=new Label(++columnNum,titleRow,"FlOW_OUT_DEST_IP",greyBackground);
           sheet.addCell(titleLab);
          
           titleLab=new Label(++columnNum,titleRow,"CALLED_RTP_PACKETS",greyBackground);
           sheet.addCell(titleLab);
           titleLab=new Label(++columnNum,titleRow,"CALLED_PACKETS",greyBackground);
           sheet.addCell(titleLab);
           titleLab=new Label(++columnNum,titleRow,"PACK_LOSS",greyBackground);
           sheet.addCell(titleLab);
           titleLab=new Label(++columnNum,titleRow,"CALLED_RTP_AVG_JITTER",greyBackground);
           sheet.addCell(titleLab);
           titleLab=new Label(++columnNum,titleRow,"CALLED_R_FACTOR",greyBackground);
           sheet.addCell(titleLab);
           titleLab=new Label(++columnNum,titleRow,"CALLED_MOS",greyBackground);
           sheet.addCell(titleLab);
          
          
           SBCCDRDAO sbcCDRDAO=new SBCCDRDAO();
           List<SBCCDRVO> list=sbcCDRDAO.getList(sqlPath);
          

           columnNum=final_columnNum+1;

         
       
          //其它

         
          titleLab=new Label(final_columnNum,(final_titleRow-2),strBigTitle,bigGreyBackground);
          sheet.addCell(titleLab);
         
          titleLab=new Label(final_columnNum,(final_titleRow-1),trunkSmallTitle,smallTitleBackground);
          sheet.addCell(titleLab);
         
      
        
         
         
         
         
          //整数
          WritableCellFormat integerFormat = new WritableCellFormat (NumberFormats.INTEGER);
          integerFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
          Number number =null;
          
          //字符串
          Label label=null;
         
         

         
            int conColumn=final_columnNum;
            int conRow=final_titleRow+2;
           // WeekDao weekDao=new WeekDao();
           

  
     for(int i=0;i<list.size();i++){
     
     
                 SBCCDRVO vo=list.get(i);
                if(vo.getF32_flow_out_src_ip()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",contentFormat);
     
       }else{
        titleLab=new Label((conColumn++),conRow,vo.getF32_flow_out_src_ip(),contentFormat);
            
       }
               sheet.addCell(titleLab);
               
                if(vo.getF34_flow_out_dest_ip()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",contentFormat);
     
       }else{
        titleLab=new Label((conColumn++),conRow,vo.getF34_flow_out_dest_ip(),contentFormat);
            
       }
               
                sheet.addCell(titleLab);
               
               
               
                if(vo.getCalled_rtp_packets()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getCalled_rtp_packets(),integerFormat);
        sheet.addCell(number);
       }
               
               
                if(vo.getCalled_packets()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getCalled_packets(),integerFormat);
        sheet.addCell(number);
       }
               
               
               

               
                //%
                if(vo.getPack_loss()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getPack_loss()/100.00,doublewcf3);
        sheet.addCell(number);
       }
               
               
              if(vo.getCalled_rtp_avg_jitter()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getCalled_rtp_avg_jitter(),integerFormat);
        sheet.addCell(number);
       }
             
             
              if(vo.getCalled_r_factor()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getCalled_r_factor(),integerFormat);
        sheet.addCell(number);
       }
             
              if(vo.getCalled_mos()==null){
        titleLab=new Label((conColumn++),conRow,"N/A",noRightBackground);
        sheet.addCell(titleLab);
       }else{
        number=new Number((conColumn++),conRow,vo.getCalled_mos(),integerFormat);
        sheet.addCell(number);
       }
               
               
               
              total_columnNum= conColumn-1;
               conColumn=final_columnNum;
               conRow++;

            }
          
  
    
       
    
          sheet.mergeCells(final_columnNum,(final_titleRow-1),total_columnNum,(final_titleRow-1));//合并单元格  先往合并的第一个单元格写数据,再合并
          sheet.mergeCells(final_columnNum,(final_titleRow-2),total_columnNum,(final_titleRow-2));//合并单元格  先往合并的第一个单元格写数据,再合并

          workbook.write();
        
          if(workbook!=null){
           workbook.close();
          }
          return true;
  }

}

分享到:
评论

相关推荐

    jxl-2.6.10.jar包

    3. **数据类型支持**:jxl库能够处理各种Excel数据类型,包括字符串、数字、日期、布尔值等。例如,使用`Label`类创建包含文本的单元格,`Integer`类处理数字,`Date`类处理日期。 4. **样式和格式**:jxl库允许...

    利用jxl把excel中的数据导入数据库

    5. **数据转换**:将Excel中的数据类型(如String、Number等)转换为适合数据库存储的格式。 然后,导入数据到数据库通常包括以下环节: 1. **数据库连接**:使用JDBC(Java Database Connectivity)建立与数据库的...

    java jxl的jar包 官方下载版

    1. **读取Excel文件**:JXL允许开发者读取Excel文件中的数据,包括单元格的内容、格式、样式等信息。它可以解析不同类型的单元格数据,如字符串、数字、日期等。 2. **写入Excel文件**:JXL可以创建新的Excel文件,...

    JXL API

    可以设置单元格的值,调整其数据类型(文本、数字、日期等),以及应用格式(如字体、颜色、对齐方式)。 2. **工作表与工作簿管理**:开发者可以通过JXL API创建新的工作簿,添加、删除和重命名工作表。同时,可以...

    jxl.jar的使用

    注意处理不同的数据类型,如数字、日期、字符串等。 4. **TXT到Excel转换**:相反的过程,从TXT文件读取数据,创建新的Excel工作表,然后逐行逐列地写入数据。 5. **处理格式和样式**:JXL支持设置单元格的字体、...

    Jxl的API结构

    通过 Jxl,开发者可以轻松地读取和写入 Excel 文件,无论是简单的数据操作还是复杂的格式设置,都能够得到很好的支持。在处理大量数据时,利用 Jxl 可以提高工作效率,尤其适合报表生成、数据分析和数据导入导出等...

    jxl学习与经验共享

    JXL不仅支持数据读写,还允许对单元格进行样式和格式的设置。可以设定字体、颜色、对齐方式、边框、填充等属性。例如,`setBold()`方法可以使文本加粗,`setAlignment()`可以调整单元格内容的水平或垂直对齐。 5. ...

    jxl 包API

    3. **数据类型支持**:jxl支持多种数据类型,包括字符串、数字、日期、布尔值等。例如,使用Cell.setLabel(String)设置文本,Cell.setNumber(double)设置数值,Cell.setDate(Date)设置日期。 4. **格式化**:jxl还...

    java 中使用jxl API 操作Excel文档

    JXL库支持多种数据类型,如字符串、整数、浮点数、日期等。在读取或写入数据时,需要进行适当的类型转换。 9. **保存和关闭工作簿** 完成所有操作后,使用`Workbook.write()`方法将工作簿写入文件,然后调用`...

    jxl JAVA Excel解析

    这个库特别适合那些需要处理大量数据并希望将数据格式化为表格的项目。下面我们将深入探讨JXL库在Java Excel解析中的应用。 ### 1. JXL库介绍 JXL(Java Excel API)是一个开源的Java库,专门用于处理Microsoft ...

    导入/导出excel jxl.jar

    JXL不仅支持基本数据类型,还支持插入图片、图表、超链接等复杂内容。 3. **处理图片**:在Excel文件中插入或读取图片是JXL的一个特色。它允许你将二进制图像数据添加到工作表中,并且可以调整图片的大小和位置。这...

    java后台jxl将excel数据导入到MYSQL中

    以上代码只是一个基础示例,实际应用中需要考虑更多细节,如异常处理、数据类型转换、批量操作性能优化等。同时,为了提高效率和减少内存消耗,建议使用流式处理Excel数据,而不是一次性加载整个文件到内存。此外,...

    jxl-2.6.12.jar

    - **数据格式化**:可以处理各种数据类型,包括日期、数字、字符串等,并能根据需要进行格式转换。 2. **使用方法**: - **引入依赖**:将jxl-2.6.12.jar加入到项目的类路径中,如果是Maven项目,需要在pom.xml...

    jxl集合包 不是SSH框架下的

    2. **写入Excel文件**:同样,它也支持创建新的Excel文件或向已有文件中追加内容,包括文本、数字、日期、布尔值等各种类型的数据。 3. **处理样式和格式**:JXL允许设置单元格的字体、颜色、边框、对齐方式、背景色...

    java_Jxl(导入导出Excel)

    Jxl 是一款用于处理 Excel 文件的 Java 库,支持多种版本的 Excel 文件格式,包括 Excel 95 至 2000 版本。该库允许开发者以纯 Java 的方式创建、读取和修改 Excel 文件,无需依赖于 Windows 操作系统或 Office 应用...

    jxl导出excel数据的详细介绍和实例

    jxl库支持多种类型的单元格数据,包括文本、数字、日期等,并提供了丰富的样式设置功能。在实际应用中,我们可以通过jxl创建新的Excel文件或对现有文件进行修改。 #### 三、环境搭建 确保安装了JDK并配置好环境变量...

    jxl.rar源代码,示例,文档,Demo,使用java生成Excel

    此外,jxl还可以用于数据验证,如检查单元格的数据类型、格式等。通过设置样式,可以实现单元格颜色、字体、边框的自定义,让Excel文件更加美观专业。 总结,jxl库是Java开发中处理Excel文件的得力助手,其源代码、...

    JXL读写Excel例子demo

    在"JXL读写Excel例子demo"中,我们将探讨如何利用JXL库来处理Excel数据。这个示例程序包含了一个名为"Jxl读写Excel例子demo.jxl.jar"的库文件,它是JXL库的实现,可以集成到Java项目中以处理Excel文件。 JXL库提供...

    jxl.jar包,亲测可用

    通过设定Cell类型(如文本、数字、日期等),开发者可以精确控制单元格的内容和格式。 - **修改Excel文件**:除了读写,jxl.jar还可以对Excel文件进行修改,如添加、删除、移动工作表,设置单元格样式,处理公式等...

Global site tag (gtag.js) - Google Analytics