`

java操作Excel

    博客分类:
  • J2SE
阅读更多
    http://hi.baidu.com/kaixin_2007/item/8afdc214313d3cf9dceecaf0
单元格操作

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

1、 合并单元格

Java代码
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 ); 
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、 行高和列宽

Java代码
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 ); 
  
 
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,需要知道它有多少行和多少列,如下操作:

Java代码
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 i =   0 ; i < rownum; i ++ ) // 循环进行读写  
           { 
            for ( int j =   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(); 
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 i =   0 ; i < rownum; i ++ ) // 循环进行读写
            {
             for ( int j =   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();

下面是一个完成代码

import  jxl.*; 
import  jxl.write.*; 
import  java.io.*;

public static void main(String[] args){
        String targetfile = "d:/out.xls " ; //输出的excel文件名  
        String worksheet = "List" ; //输出的excel文件工作表名  
        String[] title = {"ID\012ID2" , "NAME" , "DESCRIB" }; //excel工作表的标题  
        WritableWorkbook workbook; 
        try  
        { 
            //创建可写入的Excel工作薄,运行生成的文件在tomcat/bin下  
            //workbook = Workbook.createWorkbook(new File("output.xls"));   
            System.out.println("begin" ); 
           
            OutputStream os = new FileOutputStream(targetfile);  
            workbook = Workbook.createWorkbook(os);  
            WritableSheet sheet = workbook.createSheet(worksheet, 0 );  //添加第一个工作表  
            //WritableSheet sheet1 = workbook.createSheet("MySheet1", 1); //可添加第二个工作  
            /*
            jxl.write.Label label = new jxl.write.Label(0, 2, "A label record"); //put a label in cell A3, Label(column,row) 
            sheet.addCell(label);  
            */
            jxl.write.Label label; 
            for( int  i= 0 ; i< title.length; i++){ 
                //Label(列号,行号 ,内容 )
                label = new jxl.write.Label(i,  0 , title[i]);  //put the title in row1   
                sheet.addCell(label);  
            } 
           
           
            WritableCellFormat wrappedText = new WritableCellFormat(WritableWorkbook.ARIAL_10_PT);
            wrappedText.setWrap(true);// 可换行的label样式
            Label label2 = new Label(4, 0, "测试再长一点了呵呵,\012测试。。。", wrappedText); // "\012"强制换行
            sheet.addCell(label2);
       
           
            //下列添加的对字体等的设置均调试通过,可作参考用  
           
            //添加数字   
            jxl.write.Number number = new  jxl.write.Number( 3 ,  4 ,  3.14159 );  //put the number 3.14159 in cell D5  
            sheet.addCell(number); 
           
            //添加带有字型Formatting的对象   
            jxl.write.WritableFont wf = new  jxl.write.WritableFont(WritableFont.TIMES, 10 ,WritableFont.BOLD, true );  
            jxl.write.WritableCellFormat wcfF = new  jxl.write.WritableCellFormat(wf);  
            jxl.write.Label labelCF = new  jxl.write.Label( 4 , 4 , "文本" ,wcfF);  
            sheet.addCell(labelCF);  
           
            //添加带有字体颜色,带背景颜色 Formatting的对象   
            jxl.write.WritableFont wfc = new  jxl.write.WritableFont(WritableFont.ARIAL, 10 ,WritableFont.BOLD, false ,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);  
            jxl.write.WritableCellFormat wcfFC = new  jxl.write.WritableCellFormat(wfc);  
            wcfFC.setBackground(jxl.format.Colour.BLUE); 
            jxl.write.Label labelCFC = new  jxl.write.Label( 1 , 5 , "带颜色" ,wcfFC);  
            sheet.addCell(labelCFC);  
           
            //添加带有formatting的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);  
            sheet.addCell(labelNF);  
           
            //3.添加Boolean对象   
            jxl.write.Boolean labelB = new  jxl.write.Boolean( 0 , 2 , false );  
            sheet.addCell(labelB);  
           
            //4.添加DateTime对象   
            jxl.write.DateTime labelDT = new  jxl.write.DateTime( 0 , 3 , new  java.util.Date());  
            sheet.addCell(labelDT);  
           
            //添加带有formatting的DateFormat对象   
            jxl.write.DateFormat df = new  jxl.write.DateFormat( "ddMMyyyyhh: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);  
            sheet.addCell(labelDTF);  
           
            //和宾单元格  
            //sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角  
            sheet.mergeCells(4 , 5 , 8 , 10 ); //左上角到右下角  
            wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 40 ,WritableFont.BOLD, false ,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);  
            jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);  
            wchB.setAlignment(jxl.format.Alignment.CENTRE); 
            labelCFC = new  jxl.write.Label( 4 , 5 , "单元合并" ,wchB);  
            sheet.addCell(labelCFC); //  
           
           
            //设置边框  
            jxl.write.WritableCellFormat wcsB = new  jxl.write.WritableCellFormat();  
            wcsB.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK); 
            labelCFC = new  jxl.write.Label( 0 , 6 , "边框设置" ,wcsB);  
            sheet.addCell(labelCFC);  
            workbook.write();  
            workbook.close(); 
        }catch (Exception e)  
        {  
            e.printStackTrace();  
        }  
        System.out.println("end" ); 
        Runtime r = Runtime.getRuntime();  
        Process p = null ;  
        //String cmd[]={"notepad","exec.java"};    
        String cmd[] = {"C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE" , "out.xls" };  
        try {  
            p = r.exec(cmd);  
        }  
        catch (Exception e){  
            System.out.println("error executing: " +cmd[ 0 ]);  
        } 

    }
分享到:
评论

相关推荐

    Java操作Excel表格

    当我们谈论“Java操作Excel表格”时,通常是指使用Java来读取、写入或处理Microsoft Excel文件,这在数据分析、报表生成或者数据交换等场景中非常常见。本主题将围绕Java如何与Excel交互进行深入探讨。 首先,Java...

    Java 操作Excel和Word的所有资料

    Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word...

    利用JAVA操作EXCEL文件.pdf

    ### 利用JAVA操作EXCEL文件的关键知识点 #### 一、JAVA EXCEL API 简介 - **项目背景**:随着Web应用的发展,越来越多的应用场景需要通过Web端操作Excel文件,而传统的CSV文件虽然可以被Excel打开,但无法实现对...

    Java操作Excel详解

    ### Java操作Excel详解 #### 一、Java Excel API简介 Java Excel API是一个强大的开源库,允许开发者使用Java语言轻松地创建、更新以及读取Excel文件。这个库支持多种Excel文件格式,包括较旧版本(如.xls)和较新...

    最全最实用的Java操作Excel教程

    ### Java操作Excel教程详解 #### 一、POI简介与背景 **Jakarta POI** 是Apache的一个子项目,它的主要目标是处理OLE2对象。POI提供了一组用于操作Microsoft Office文件(如Word和Excel)的Java API。其中,**HSSF*...

    java操作excel

    Java操作Excel是常见的数据处理需求,特别是在数据分析、报表生成或者数据导入导出等场景中。在Java中,我们可以借助Apache POI库来实现对Excel文件的读写操作。Apache POI是一个开源项目,提供了API来处理Microsoft...

    通过java操作excel表格的工具类库

    Java 操作 Excel 表格是一项常见的任务,尤其在数据处理和报告生成方面。在这个场景中,我们使用了一个名为 JExcelApi(简称 JXL)的 Java 库来实现这个功能。JXL 是一个开源的 Java 库,允许程序员读取、写入和修改...

    java操作excel的jar包

    Java操作Excel是软件开发中常见的任务,特别是在数据分析、报表生成或数据导入导出场景下。在Java中,我们可以借助特定的库来实现这些功能,其中一个广泛使用的库就是Apache POI项目。Apache POI是一个开源的Java ...

    Java操作Excel的开源库

    Java操作Excel的开源库在开发过程中常常被广泛使用,特别是在数据处理、报表生成以及与用户交互的场景下。JExcelAPI是一个这样的库,它允许Java开发者方便地读取、写入以及修改Microsoft Excel文件,无需依赖Excel...

    用java操作Excel的一中非常好的工具

    Java操作Excel是一项常见的任务,特别是在数据处理和报告生成中。JExcelApi是一个强大的库,它允许Java开发者读取、写入以及修改Excel文件,而无需依赖Microsoft Office套件。这个工具因其易用性和广泛的功能而备受...

    java操作excel代码[文].pdf

    Java 操作 Excel 代码详解 本文档主要介绍了使用 Java 语言操作 Excel 文件的代码实现,涵盖了创建新的 Excel 文件、添加表头、合并单元格、设置单元格样式等功能。 创建新的 Excel 文件 在 Java 中想要操作 ...

    Java操作Excel

    Java操作Excel是Java开发中的一项常见任务,尤其是在数据处理、报表生成或数据分析等场景下。在Java中,有两种主流库可以用来操作Excel文件:Apache POI和JXL。接下来,我们将详细探讨这两个库以及如何使用它们。 ...

    java操作excel读写

    java操作excel读写,可以根据自己的需要灵活修改。导入导出excel

    java 操作excel需要的jar包

    标题提到的"java操作excel需要的jar包",以及描述中的"java操作excel 读取word文档 导出word文档需要用到的jar包",都指向了Apache POI的使用。Apache POI提供了HSSF和XSSF两个组件,分别用于处理旧版的Excel 97-...

    利用java操作Excel文件

    "Java操作Excel文件" Java操作Excel文件是指使用Java语言来读取和写入Excel文件的内容。下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源...

    java 操作excel表格经典例子

    ### Java操作Excel表格经典案例分析 #### 一、引言 在日常办公环境中,Microsoft Office套件中的Excel因其强大的数据处理能力而被广泛使用。在Java编程领域,开发者经常需要处理Excel文件,如批量导入导出数据、...

    jxl Java操作Excel

    java操作Excel java操作Excel java操作Excel

    Java 操作Excel之excel输出到网页

    本主题聚焦于“Java操作Excel之excel输出到网页”,这涉及到如何利用Java技术读取Excel文件,并将数据呈现到Web页面上供用户查看。我们将深入探讨相关知识点,包括Java与Excel交互的库、文件上传处理、数据读取、...

Global site tag (gtag.js) - Google Analytics