zoukankan      html  css  js  c++  java
  • jxl读写excel的方法

    • jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好
    • poi功能比jxl强大但是比较吃内存,支持计算公式

    具体参考链接    http://www.cnblogs.com/dashuai01/p/4778017.html

    JXl

    1. 创建

      创建工作簿,就是一个Excel文档,参数最常用的就是文件输出流和文件,还有的很多。。。

              WritableWorkbook wwb = null;
              File file = new File("D:\test.xls");
              wwb = Workbook.createWorkbook(file);
              OutputStream os = new FileOutputStream("D:\test.xls");
              wwb = Workbook.createWorkbook(os);

      创建工作表

      WritableSheet sheet =wwb.createSheet(name, x);//x表示第x+1个工作表,名字是name

      添加单元格内容

      Label label = new Label(col, rows, content);//表示 第col+1列,第rows+1的单元格的内容是content
      sheet.addCell(label);

      固定表头

      SheetSettings ss = sheet.getSettings();
      ss.setVerticalFreeze(1); // 固定表头,无论怎么往下翻页,第一行永远在第一行

      填充数据

      数据填充这块稍微复杂点,涉及到数据单元格的格式问题。
       
      a)、填充数字
              jxl.write.Number numb = new jxl.write.Number(1, 1, 250);
              sheet.addCell(numb);
       
      b)、填充格式化的数字
              jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
              jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);
              jxl.write.Number n = new jxl.write.Number(2, 1, 2.451, wcf);
              sheet.addCell(n);
       
      c)、填充日期
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
              String newdate = sdf.format(new Date());
              label = new Label(2, 2, newdate);
              sheet.addCell(label);
       
      d)、填充文本
              label = new Label(3, 3, "周星驰");
              sheet.addCell(label);
       
      e)、填充boolean值
              jxl.write.Boolean bool = new jxl.write.Boolean(4, 1, true);
              sheet.addCell(bool);
       
      合并单元格
       
      通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的。
      表示将从第x+1列,y+1行到m+1列,n+1行合并 (四个点定义了两个坐标,左上角和右下角)
      结果是合并了m-x+1行,n-y+1列,两者乘积就是合并的单元格数量。
       
              sheet.mergeCells(0, 6, 3, 8);
              label = new Label(0, 6, "合并了12个单元格");
              sheet.addCell(label);
       
      添加单元格的式样
       
      主要是改变单元格背景、字体、颜色等等。
              WritableCellFormat wc = new WritableCellFormat();
              // 设置居中
              wc.setAlignment(Alignment.CENTRE);
              // 设置边框线
              wc.setBorder(Border.ALL, BorderLineStyle.THIN);
              // 设置单元格的背景颜色
              wc.setBackground(jxl.format.Colour.RED);
              label = new Label(1, 5, "字体", wc);
              sheet.addCell(label);
       
      设置单元格字体
       
              // 设置字体
              jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("楷书"), 20);
              WritableCellFormat font = new WritableCellFormat(wfont);
              label = new Label(2, 6, "楷书", font);
              sheet.addCell(label);
       
      将工作写成文件
       
              // 写入数据
              wwb.write();
              // 关闭文件
              wwb.close();
       
    2. 读取

      获取工作表(sheet)的值
      Workbook workbook = Workbook.getWorkbook(file);
      Sheet sheet = workbook.getSheet(0);
      String name = sheet.getName();
      System.out.println(name);
      行列的批量操作
              //获取所有的工作表
              jxl.write.WritableSheet[] sheetList = wwb.getSheets();
              //获取第1列所有的单元格
              jxl.Cell[] cellc = sheet.getColumn(0);
              //获取第1行所有的单元格
              jxl.Cell[] cellr = sheet.getRow(0);
              //获取第1行第1列的单元格
              Cell c = sheet.getCell(0, 0);
       
      获取单元格的值
       

              //获取单元格的值,不管什么单元格,返回都是字符串
              String value = c.getContents();

  • 相关阅读:
    Educational Codeforces Round 10 C. Foe Pairs 水题
    Educational Codeforces Round 10 B. z-sort 构造
    CDOJ 1048 Bob's vector 三分
    Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
    第14届电子科大初赛民间盗版部分题目题解
    HDU 5654 xiaoxin and his watermelon candy 离线树状数组 区间不同数的个数
    HDU 5653 Bomber Man wants to bomb an Array. dp
    HDU 5652 India and China Origins 二分+并查集
    HDU 5651 xiaoxin juju needs help 数学
    HDU 5650 so easy 数学
  • 原文地址:https://www.cnblogs.com/dashuai01/p/4776277.html
Copyright © 2011-2022 走看看