kristenlee1218 2016-02-23 11:24 采纳率: 61.3%
浏览 2253

java遍历服务器里的所有excel文件读取特定单元格的值,循环读取文件的代码怎么写

package com.excel.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.CellType;
import jxl.LabelCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;

public class ExcelOperater

{
public static void main(String[] args)

{
    jxl.Workbook readwb = null;

    try

    {

        // 构建Workbook对象, 只读Workbook对象

        // 直接从本地文件创建Workbook

        InputStream instream = new FileInputStream(
                "F:/tomcat7/webapps/Excel/upload/1.xls");

        readwb = Workbook.getWorkbook(instream);

        // Sheet的下标是从0开始

        // 获取第一张Sheet表

        Sheet readsheet = readwb.getSheet(0);

        // 获得第一行第一列单元的值

        Cell c00 = readsheet.getCell(2, 2);

        // 通用的获取cell值的方式,返回字符串

        String strc00 = c00.getContents();

        System.out.println("-----------------");

        System.out.println(c00.getContents());

        System.out.println("------------------");

        // 获得cell具体类型值的方式

        if (c00.getType() == CellType.LABEL)

        {

            LabelCell labelc00 = (LabelCell) c00;

            strc00 = labelc00.getString();

        }

        // 获取Sheet表中所包含的总列数

        int rsColumns = readsheet.getColumns();

        // 获取Sheet表中所包含的总行数

        int rsRows = readsheet.getRows();

        // 获取指定单元格的对象引用

        for (int i = 0; i < rsRows; i++)

        {

            for (int j = 0; j < rsColumns; j++)

            {

                Cell cell = readsheet.getCell(j, i);

                System.out.print(cell.getContents() + " ");

            }

            System.out.println();

        }

        // 利用已经创建的Excel工作薄,创建新的可写入的Excel工作薄

        jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(

        "F:/tomcat7/webapps/Excel/upload/11.xls"), readwb);

        // 读取第一张工作表

        jxl.write.WritableSheet ws = wwb.createSheet("第一页", 0);

        // 获得特定单元格的对象

        Label label = new Label(0, 0, c00.getContents());

        System.out.println("label value:" + label.getContents());

        ws.addCell(label);

        /*
         * //读取excel中的全部内容写入到新的excel中 //读取第一张工作表
         * 
         * jxl.write.WritableSheet ws = wwb.getSheet(0);
         * 
         * //获得第一个单元格对象
         * 
         * jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
         */

        // 写入Excel对象

        wwb.write();

        wwb.close();

    } catch (Exception e) {

        e.printStackTrace();

    } finally {

        readwb.close();

    }

}

}

  • 写回答

2条回答

  • Royal_lr 2016-02-24 02:48
    关注
    • jxl.write.WritableCell wc = ws.getWritableCell(0, 0);不就是这样的吗,,
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码