zoukankan      html  css  js  c++  java
  • Java 操作 Excel(1)--Jxl使用

    Jxl 是一个操作 Excel 的工具类库,功能比较简单,只支持 Excel 2003 及以前的版本;本文简单介绍下使用 Jxl 来读写 Excel,文中所使用到的软件版本:jdk1.8.0_181、Jxl 2.6.12。

    1、引入依赖

    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
    </dependency>

    2、代码样例

    package com.abc.demo.general.excel;
    
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.write.*;
    import org.junit.Test;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 使用Jxl操作Excel
     */
    public class JxlCase {
        private static Logger logger = LoggerFactory.getLogger(JxlCase.class);
    
        @Test
        public void write() throws Exception {
            WritableWorkbook writableWorkbook = null;
            try {
                writableWorkbook = Workbook.createWorkbook(new File("d:/a.xls"));
                WritableSheet writableSheet = writableWorkbook.createSheet("数据", 0);
                //写入5行数据
                for (int row = 0; row < 5; row++) {
                    int col = 0;
                    //写入数字
                    writableSheet.addCell(new jxl.write.Number(col++, row, row));
                    //写入文本
                    writableSheet.addCell(new Label(col++, row, "文本"));
                    //写入布尔值
                    writableSheet.addCell(new jxl.write.Boolean(col++, row, true));
                    //设置格式
                    WritableFont writableFont = new WritableFont(WritableFont.TIMES,16, WritableFont.BOLD);
                    WritableCellFormat writableCellFormat = new WritableCellFormat(writableFont);
                    writableCellFormat.setAlignment(jxl.format.Alignment.CENTRE);
                    writableCellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
                    writableCellFormat.setWrap(true);
                    writableSheet.addCell(new Label(col++, row, "格式化", writableCellFormat));
                }
                writableWorkbook.write();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (writableWorkbook != null) {
                    writableWorkbook.close();
                }
            }
        }
    
        @Test
        public void read() {
            Workbook workbook = null;
            try {
                workbook = Workbook.getWorkbook(new File("d:/a.xls"));
                Sheet sheet = workbook.getSheet(0);
                logger.info("colNum={},rowNum={}", sheet.getColumns(), sheet.getRows());
                List<String> lineData = new ArrayList<>();
                for (int i = 0; i < sheet.getRows(); i++) {
                    lineData.clear();
                    for (int j = 0; j < sheet.getColumns(); j++) {
                        Cell cell = sheet.getCell(j, i);
                        lineData.add(cell.getContents());
                    }
                    logger.info("第{}行数据:{}", i + 1, lineData.toString());
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (workbook != null) {
                    workbook.close();
                }
            }
        }
    
    }
  • 相关阅读:
    gearman任务分发改进
    gearman实现任务分发
    BeanStalkd 做队列服务
    Tomcat各种日志的关系与catalina.out文件的分割
    数据库系统原理-关系数据库的规范化理论总结
    MySQL配置参数innodb_flush_log_at_trx_commit
    gRPC快速入门
    使用vagrant和kubeadm搭建k8s集群
    VS项目属性中的C/C++运行库:MT、MTd、MD、MDd
    消除C++中警告代码
  • 原文地址:https://www.cnblogs.com/wuyongyin/p/14691139.html
Copyright © 2011-2022 走看看