zoukankan      html  css  js  c++  java
  • Java实现Excel表格操作--API:jxl

    一、jxl了解

      jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且 仅仅识别PNG格式。

    二、jxl.jar获取

      1、jxl.jar:这里进行下载

        下载jar包后放入classpath即可

      2、通过maven进行管理的要在pom.xml中引入依赖

    <!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
    </dependency>

    三、jxl进行Excel的操作

    package com.jxl.excel;
    
    import java.io.File;
    
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.write.Label;
    import jxl.write.Number;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableImage;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    
    /**
     * Excel表格操作
     * 
     * @author Administrator
     *
     */
    public class Utils {
    
        public static void main(String[] args) {
    //        createXLS();
            readXLS();
        }
    
        // 创建表格
        public static void createXLS() {
            try {
                // 打开文件
                WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
                // 生成名为“第一页”的工作表,参数0表示这是第一页
                WritableSheet sheet = book.createSheet("first page", 0);
                // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)单元格内容为test
                Label label = new Label(0, 0, "test");
                // 将定义好的单元格添加到工作表中
                sheet.addCell(label);
                // 生成一个保存数字的单元格,
                Number number = new Number(1, 0, 789);
                sheet.addCell(number);
                // 写入数据并关闭文件
                book.write();
                book.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        // 读取Excel
        public static void readXLS() {
            try {
                Workbook book = Workbook.getWorkbook(new File("test.xls"));
                Sheet sheet = book.getSheet(0);
                Cell cell = sheet.getCell(0, 0);
                String result = cell.getContents();
                System.out.println(result);
                book.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        // 修改Excel的类,添加一个工作表
        public static void updateXLS() {
            try {
                Workbook wb = Workbook.getWorkbook(new File("test.xls"));
                // 打开一个文件的副本,并且指定数据写回到原文件
                WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"), wb);
                // 添加一个工作表
                WritableSheet sheet = book.createSheet("第二页", 1);
                sheet.addCell(new Label(0, 0, "第二页的测试数据"));
                book.write();
                book.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        // 操作图片
        public static void addImage() throws Exception {
            WritableWorkbook wwb = Workbook.createWorkbook(new File("test.xls"));
            WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
            File file = new File("test.png");
            WritableImage image = new WritableImage(1, 4, 6, 18, file);
            ws.addImage(image);
            wwb.write();
            wwb.close();
        }
    
        // 单元格合并
        public static void mergeSheet(WritableWorkbook book, int sheetIndex, int x, int y, int x1, int y1) {
            WritableSheet sheet = book.getSheet(sheetIndex);
            try {
                sheet.mergeCells(x, y, x1, y1);
           // 合并第x列第x行到第x1列第y1行的所有单元格 } catch (Exception e) { e.printStackTrace(); } } // 列宽行高设置 public static void setColView(WritableSheet sheet, int colIndex, int rowIndex, int colW, int rowH) { try { // 将第colIndex列的宽度设为colW sheet.setColumnView(colIndex, colW); // 将第rowIndex行的高度设为rowH sheet.setRowView(rowIndex, rowH); } catch (Exception e) { e.printStackTrace(); } } public static void setFont() { WritableWorkbook book; try { book = Workbook.createWorkbook(new File("test.xls")); WritableFont font1 = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD);// 字体为TIMES,字号16,加粗显示 WritableCellFormat format1 = new WritableCellFormat(font1);
           // 使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述 Label label = new Label(0, 0, "data 4 test", format1);
           // 使用了Label类的构造子,指定了字串被赋予那种格式 // 把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); // 把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 设置自动换行 format1.setWrap(true); } catch (Exception e) { e.printStackTrace(); } } }

           

  • 相关阅读:
    Scala 构造器
    Scala 模式匹配
    Scala class & case class & object & case object 对比
    Scala 数据类型 & 类型转换 & 转换精度
    Scala val 和 var 的区别
    Shell脚本统计词频
    Linux基础命令使用总结
    WebGL学习笔记(七):输入和动画
    javaNIO:通道和文件通道 Channel
    javaNIO:缓冲区 Buffer
  • 原文地址:https://www.cnblogs.com/null-/p/10028390.html
Copyright © 2011-2022 走看看