• 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();
                }
            }
        }
    
    }
  • 相关阅读:
    JS中prototype属性解释及常用方法
    HTML5 组件Canvas实现图像灰度化
    洛谷.5284.[十二省联考2019]字符串问题(后缀自动机 拓扑 DP)
    洛谷.5290.[十二省联考2019]春节十二响(贪心)
    洛谷.5283.[十二省联考2019]异或粽子(可持久化Trie 堆)
    SDOI2019 省选前模板整理
    完美理论(最大权闭合子图)
    BZOJ.3566.[SHOI2014]概率充电器(概率DP 树形DP)
    BZOJ.2616.SPOJ PERIODNI(笛卡尔树 树形DP)
    4.2模拟赛 wormhole(期望DP Dijkstra)
  • 原文地址:https://www.cnblogs.com/wuyongyin/p/14691139.html
Copyright © 2020-2023  润新知