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

JAVA使用JXL操作Excel

阅读更多

~~

 

code:

 

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class JxlTest
{

    public static void main(String[] args)
    {
        List<String[]> list = readExcel("bbb.xls");

        for (String[] s : list)
        {
            // System.out.println(Arrays.asList(s).toString());
        }

        toExcelTest("ccc.xls");

    }

    /**
     * 用COMMON UPLOAD进行EXCEL文件上传,得到fileItem对象,这里 进行解析,返回集合对象。该方法适合在WEB项目中使用。
     * 
     * @param fileItem
     * @param beginIndex
     *            正式数据的起始行 例如EXCEL文件 有大标题和小标题和列标题,那么该参数应为 4
     * @return
     * @throws BiffException
     * @throws IOException
     */
    public static List<String[]> readExcel(String fileName)
    {

        int beginIndex = 1;
        // 保存结果集
        List<String[]> result = null;
        // 保存EXCEL每行的所有单元格中的数据
        String[] temp = null;
        try
        {
            File file = new File(fileName);
            Workbook workBook = Workbook.getWorkbook(file);
            Sheet sheet = workBook.getSheet(0);
            Cell cell = null;
            int rowSize = sheet.getRows();
            int colSize = sheet.getColumns();

            result = new ArrayList<String[]>();
            for (int i = beginIndex - 1; i < rowSize; i++)
            {
                // 保存EXCEL每行的所有单元格中的数据
                temp = new String[colSize];
                for (int t = 0; t < colSize; t++)
                {
                    cell = sheet.getCell(t, i);
                    String content = "";
                    if (cell.getContents() != null)
                    {
                        // 去空格,特殊字符和回车键盘
                        content = cell.getContents().replace("%", "").replace("|", "").replace(" ", "").replaceAll(
                                "\\n", "").replaceAll("\\r", "").trim();

                    }
                    temp[t] = content;
                }
                // 将每列的的数据存入结果集中
                result.add(temp);
            }
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
        return result;
    }

    /**
     * 
     * 生成excel
     * 
     * @param fileName
     * @author
     * @date
     */
    public static void toExcelTest(String fileName)
    {

        // 初始化工作表
        WritableWorkbook workbook = null;
        try
        {

            // 设置弹出对话框

            // 创建工作表
            workbook = Workbook.createWorkbook(new File(fileName));

            // 定义工作表 sheet 标题
            WritableSheet ws = workbook.createSheet("Mapping", 0);
            ws.getSettings().setShowGridLines(true);
            ws.getSettings().setProtected(false);

            // 控制列的宽度,如果你要不给一样的宽度,就单独写,i代表的是列的下标,从0开始 ,从左到右
            for (int i = 0; i < 7; i++)
            {
                ws.setColumnView(i, 20);
            }

            // 創建标题列名称
            Label titleLabel = null;
            titleLabel = new Label(0, 0, "StuNo", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(1, 0, "StuName", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(2, 0, "StuMoniter", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(3, 0, "StuAddr", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(4, 0, "Stu TELL", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(5, 0, "Stu sex", getHeadFormat());
            ws.addCell(titleLabel);
            titleLabel = new Label(6, 0, "Stu classNo", getHeadFormat());
            ws.addCell(titleLabel);

            // 循环添加对象数据
            for (int i = 0; i < 2; i++)
            {

                Label stuNoLabel = new Label(0, i + 1, "stuNo");
                Label stuNameLabel = new Label(1, i + 1, "stuName");
                Label stuminterLabel = new Label(2, i + 1, "stuminter");
                Label stuAddrLable = new Label(3, i + 1, "stuAddr");
                // Label stuTellLabel = new Label(4, i + 1, stutell);
                // 如果用这个导出后会有数值和文本的区别
                jxl.write.Number tellNumber = new jxl.write.Number(4, i + 1, Double.parseDouble("23"));
                Label stusexLabel = new Label(5, i + 1, "stusex");
                // Label classNoLabel = new Label(6, i + 1,stuClassno);
                // 一下要注意了,必须要转成double类型的数据
                jxl.write.Number classNoNumber = new jxl.write.Number(6, i + 1, Double.parseDouble("36"));

                ws.addCell(stuNoLabel);
                ws.addCell(stuNameLabel);
                ws.addCell(stuminterLabel);
                ws.addCell(stuAddrLable);
                ws.addCell(tellNumber);
                ws.addCell(stusexLabel);
                ws.addCell(classNoNumber);
            }

            workbook.write();
            workbook.close();
        } catch (Exception e)
        {
            System.out.println(e.getCause());
            System.out.println(e.getMessage());
        }
    }

    /**
     * 设置单元格样式
     * 
     * @return
     * @throws Exception
     */
    public static WritableCellFormat getHeadFormat() throws Exception
    {
        // 设置字体
        WritableFont wf = new WritableFont(WritableFont.ARIAL, 8, WritableFont.BOLD);

        // 创建单元格FORMAT
        WritableCellFormat wcf = new WritableCellFormat(wf);
        wcf.setAlignment(Alignment.CENTRE);
        wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
        wcf.setLocked(true);
        wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
        wcf.setBackground(Colour.GREY_25_PERCENT);
        return wcf;
    }
}

 

分享到:
评论

相关推荐

    Java使用JXL操作Excel

    Java使用JXL库进行Excel操作是Java开发中常见的任务,特别是在数据处理、报表生成和数据分析等领域。JXL是一个流行的开源库,它提供了丰富的API来读取、写入和修改Microsoft Excel文件。以下是对这个主题的详细说明...

    java使用jxl打印excel报表文件

    JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel报表。 首先,要使用JXL库,你需要在项目中引入它的依赖。在本例中,`jxl.jar`是JXL库的核心...

    java使用jxl进行Excel导入导出

    Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...

    java利用jxl读取excel文件

    `jxl`库是一个广泛使用的第三方库,它允许开发者轻松地读取、写入和修改Excel文件。本篇文章将深入探讨如何利用`jxl.jar`包来实现这一功能。 首先,确保你已经正确地将`jxl.jar`文件添加到你的项目类路径中。这可以...

    java利用jxl生成excel文件

    Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们...JXL提供了广泛的API来处理各种复杂的Excel操作,是Java环境下生成Excel文件的一个实用工具。

    Java jxl操作Excel97-2003 eclipse可运行项目实例

    这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse环境中使用jxl库与Excel97-2003版本的文件进行交互。 1. **jxl库介绍** jxl库是Java编程语言中的一个...

    java中jxl操作excel

    ### Java中jxl操作Excel详解 #### 一、jxl简介与优势 jxl是一个用于在Java中操作Microsoft Excel文件的开源库。虽然其功能相较于Apache POI可能略显简单,但在处理中文字符方面表现优异,且由于其纯Java实现,无需...

    java poi jxl 操作excel的小例子

    Java POI 和 JXL 是两种常用的 Java 库,用于处理 Microsoft Excel 文件。在这个入门级的实例中,我们将探讨如何使用这两个库来操作Excel文件。首先,我们先了解一下这两个库的基本概念。 1. **Java POI**: - ...

    使用jxl操作Excel

    在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft Excel文件。本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel...

    JXL操作EXCEL的各个类的解析.doc

    JXL 操作 EXCEL 的各个类的解析是 Java 语言中操作 Excel 文件的主要方法之一。JXL 通过提供了多种类来实现对 Excel 文件的读写操作。 首先,JXL 提供了一个抽象类 Workbook,该类相当于是一个工具类,用于生成 ...

    利用jxl操作excel文件

    `jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Excel文件(.xls格式)。本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要...

    java操作jxl生成excel的简化jar包

    自己封装的方法,调用 XlHelper.getXl(List&lt;?&gt; voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...

    Java利用JXL读写Excel

    以上就是使用JXL库进行Java读写Excel的基本操作。在实际应用中,你可能还需要处理更复杂的情况,比如读写公式、样式、图表等。JXL库提供了丰富的API来支持这些功能,可以根据需求进行深入学习和使用。 最后,如果你...

    JXL操作excel设置字体颜色设置单元格详解

    JXL是一个韩国人写的Java操作Excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的,并不依赖Windows...

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

    通过以上步骤,我们可以实现在Java程序中使用JXL和POI库给Excel文件添加动态水印的功能。这种技术不仅适用于企业内部的文档管理,还可以用于任何需要保护文档版权和安全性的场景。希望这篇教程能够帮助到有类似需求...

    使用jxl解析excel(.xls)固定模板(智联简历为例)

    JXL库是一个广泛使用的开源库,它允许开发者读写Microsoft Excel格式的文件,包括.xls格式。本教程将深入讲解如何使用JXL库解析Excel中的固定模板,以智联招聘的简历模板为例进行说明。 首先,确保你的项目已经引入...

    jxl导出excel加水印.zip

    `jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...

    Java操作Excel(jxl.jar)

    本篇文章将深入探讨如何使用jxl.jar库来实现Java操作Excel。 首先,jxl是一个广泛使用的Java库,它允许开发者读写Microsoft Excel文件。它的主要优势在于简单易用且功能丰富,支持多种Excel格式,包括老版本的.BIFF...

    java中jxl操作excel.docx

    Java中的JXL库是用于操作Microsoft Excel文件的一个...总的来说,JXL是一个轻量级、易于使用的Java库,对于简单或中等复杂的Excel文件操作,它是很好的选择。在实际项目中,应根据具体需求和性能要求来选择合适的库。

    java jxl创建Excel

    通过上述步骤,你就可以使用Java的JXL库创建具有各种特性的Excel文件了。在实际开发中,可以将这些功能封装成方法,以方便复用和维护。在给定的示例代码`JExcelTest`中,你应该能看到这些功能的具体实现,这将帮助你...

Global site tag (gtag.js) - Google Analytics