`

jxl向excel中添加链接、公式以及浮点数以百分比显示

 
阅读更多
package com.soft.export;

import java.io.File;
import jxl.CellType;
import jxl.Workbook;
import jxl.biff.DisplayFormat;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Formula;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.NumberFormats;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableHyperlink;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import org.junit.Test;

public class GSTest {
    @Test
    public void testGS(){
        WritableWorkbook workbook = null;
        try{
            workbook = Workbook.createWorkbook(new File("C:/Desktop/link.xls"));
            WritableSheet sheet1 = workbook.createSheet("sheet1", 0);
            WritableSheet sheet2 = workbook.createSheet("sheet2", 1);

            jxl.write.Number labelNF1 = new jxl.write.Number(0, 2,0.5);
            jxl.write.Number labelNF2 = new jxl.write.Number(0, 3,45678);
            sheet1.addCell(labelNF1);
            sheet1.addCell(labelNF2);
            //将建公式
            Formula f = 
                new Formula(5, 5, "SUM(A3:A4)", getDataCellFormat(CellType.NUMBER_FORMULA));  
            sheet1.addCell(f);             
            
            WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false);
            //数字显示格式为浮点数百分比
            DisplayFormat displayFormat = NumberFormats.PERCENT_FLOAT;         
            WritableCellFormat wcfF = new WritableCellFormat(wf,displayFormat);
            wcfF.setAlignment(Alignment.CENTRE);
            wcfF.setVerticalAlignment(VerticalAlignment.CENTRE);
            wcfF.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);      
            Number number = new jxl.write.Number(5, 0, Double.parseDouble("1"), wcfF);
            sheet1.addCell(number);
            
            //添加超链接
            addHyperlink(5,5,sheet1,sheet2,"link test");
            
            workbook.write();
            workbook.close();
        }
        catch(Exception e){
            e.printStackTrace();   
        }
    }
    
    /**
     * 
     * @param col  链接所在列
     * @param row  链接所在行
     * @param sheet要将链接添加到哪一个工作表
     * @param destSheet 要连接到哪个工作表
     * @param linkName  链接名称
     */
    public static void addHyperlink(int col,int row,WritableSheet sheet,WritableSheet destSheet,String linkName){
        try {
            WritableHyperlink whl = new WritableHyperlink(col,row,linkName,destSheet,0,0);
            sheet.addHyperlink(whl);
        } catch (RowsExceededException e) {   
            e.printStackTrace();
        } catch (WriteException e) {
            e.printStackTrace();
        }
    }
    
    /**  
     * 得到数据格式  
     * @return  
     */  
    public WritableCellFormat getDataCellFormat(CellType type){   
        WritableCellFormat wcf = null;   
        try {
            //字体样式   
            if(type == CellType.NUMBER || type == CellType.NUMBER_FORMULA){//数字   
               NumberFormat nf = new NumberFormat("#.00");   
               wcf = new WritableCellFormat(nf);    
            }else if(type == CellType.DATE || type == CellType.DATE_FORMULA){//日期   
                jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-MM-dd hh:mm:ss");    
                wcf = new jxl.write.WritableCellFormat(df);    
            }else{   
                WritableFont wf = 
                    new WritableFont(WritableFont.TIMES,10, WritableFont.NO_BOLD,false);
                wcf = new WritableCellFormat(wf);   
            }
            //对齐方式   
            wcf.setAlignment(Alignment.CENTRE);   
            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);   
            //边框   
            wcf.setBorder(Border.LEFT,BorderLineStyle.THIN);   
            wcf.setBorder(Border.BOTTOM,BorderLineStyle.THIN);   
            wcf.setBorder(Border.RIGHT,BorderLineStyle.THIN);   
            //背景色   
            wcf.setBackground(Colour.WHITE);   
               
            wcf.setWrap(true);//自动换行   
               
        } catch (WriteException e) {   
         e.printStackTrace();   
        }   
        return wcf;   
    }
    
}


转载:http://aryanwang.iteye.com/blog/622668
分享到:
评论

相关推荐

    jxl对excel添加水印(含有setWaterMarkImage方法).zip

    在这个特定的场景中,我们将探讨如何利用`jxl`库为Excel文件添加水印,特别关注`setWaterMarkImage`方法。 首先,`jxl`库不直接提供内建的水印功能。但是,通过利用`jxl.write.WritableImage`类和一些图像处理技巧...

    jxl导出excel加水印.zip

    本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `jxl`库提供了一套完整的API来操作Excel文件,包括创建新的工作簿、添加...

    Java通过POI和JXL给Excel动态添加水印

    ### Java通过POI和JXL给Excel动态添加水印 #### 概述 在实际工作中,经常需要对敏感或重要的Excel文件进行保护措施,比如添加水印。这不仅可以增加文档的专业性,还可以作为版权保护的一种手段。本文将详细介绍...

    java使用jxl打印excel报表文件

    此外,JXL库并不支持Excel的全部功能,比如复杂的公式、图表等,如果你需要这些高级特性,建议使用更强大的库如Apache POI。 在实际应用中,你还需要考虑性能优化,如内存管理和多线程安全问题。例如,可以使用流式...

    JXL 下载 Excel 文档

    描述中提到的链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测博主可能详细介绍了使用JXL库进行Excel操作的步骤、示例代码以及常见问题。ITEYE是一个知名的IT技术交流平台,上面的博客通常会包含...

    jxl的excel读写操作

    Java中的JXL库是一个广泛使用的库,用于读取和写入Microsoft Excel文件。这个库使得在Java应用程序中处理Excel数据变得简单,而无需依赖于Microsoft Office。以下是对JXL库在进行Excel读写操作时的一些关键知识点的...

    jxl导出excel 完整例子工程

    jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程

    jxl JAVA Excel解析

    Java中的JXL库是一个非常实用的工具,它允许开发者在应用程序中读取、写入和修改Excel文件。这个库特别适合那些需要处理大量数据并希望将数据格式化为表格的项目。下面我们将深入探讨JXL库在Java Excel解析中的应用...

    利用jxl操作excel文件

    本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要理解`jxl`库的基本结构。`jxl`库主要提供了`Workbook`、`Sheet`、`Cell`等类,分别对应...

    JXL读写EXCEL示例

    在Java编程环境中,处理Excel文件是一项常见的任务,而JXL库提供了一个简洁的API来实现这一功能。JXL是一个开源的Java库,专门用于读取和写入Microsoft Excel文件(.xls格式)。在这个示例中,我们将深入探讨如何...

    JXL读写Excel小例子

    在Java编程环境中,处理Excel文件是一项常见的任务,而JXL库提供了一个简洁的API来实现这一功能。JXL是一个开源的Java库,专门用于读取和写入Microsoft Excel文件(.xls格式)。在这个"JXL读写Excel小例子"中,我们...

    JXL操作EXCEL(详)

    标题"JXL操作EXCEL(详)"暗示我们将深入探讨JXL库如何处理Excel文件的各种细节,包括公式、颜色、表格、百分比和小数点等元素的处理。 首先,**JXL的安装与引入**。要使用JXL,你需要将jxl.jar添加到项目的类路径中...

    使用jxl操作Excel

    - 添加`Sheet`实例,代表Excel中的工作表。 - 在工作表上创建`Label`或`Cell`对象,设置单元格内容。 - 使用`setCell`方法将单元格对象添加到工作表的特定位置。 - 最后,通过`write`方法将工作簿写入到文件。 ...

    jxl导出excel工具类

    2. **创建工作表**:在`Workbook`中添加新的`Worksheet`,每个工作表相当于Excel中的一个Tab。 3. **设置列标题**:根据传入的集合头信息,生成对应的列标题,并设置到工作表的第一行。 4. **写入数据**:遍历集合...

    struts2 poi,jxl向excel表中插入记录源代码

    7. **部署与运行**: 下载项目后,你需要将所有依赖的库(如Struts2、POI或JXL的jar文件)添加到项目的类路径中,然后将项目部署到支持Servlet容器(如Tomcat)的服务器上,根据提示修改Excel文件路径,即可运行程序...

    JXL 读取EXCEL

    下面将详细介绍JXL库以及如何使用它来读取Excel数据。 首先,JXL提供了对Excel文件的全面支持,包括工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)等对象的创建和操作。它支持多种单元格类型,如字符串...

    使用jxl给excel加水印

    在IT行业中,处理电子表格数据时,我们常常需要对Excel文件进行各种操作,其中之一就是添加水印。水印可以起到保护文件、表明版权或者增加视觉效果的作用。在Java环境中,我们可以借助第三方库JXL来实现这个功能。...

    jxl 操作excel Demo

    jxl库也支持Excel中的公式和函数。通过创建`Formula`类型的`Cell`,可以写入Excel公式,例如SUM、AVERAGE等。在写入后,jxl会自动计算结果并保存到单元格中。 7. **示例代码** 在"jxlV2"这个文件中,可能包含了...

    关于jxl操作excel说明以及jxl.jar包下载2.6

    标题"关于jxl操作excel说明以及jxl.jar包下载2.6"表明我们将探讨如何使用JXL库以及在哪里获取它的特定版本(2.6)。 首先,让我们深入了解一下JXL库。JXL是Java Excel API的简称,它提供了一套完整的API,可以创建...

    jxl读写excel数据,输出图片

    JXL库提供了方便的API,使得开发者可以轻松地处理Excel数据,包括读取单元格内容、修改工作表、添加公式,以及本文重点讨论的——插入和输出图片。 **一、JXL库介绍** JXL是一个开源的Java库,专门用于处理Excel...

Global site tag (gtag.js) - Google Analytics