2 kristenlee1218 kristenlee1218 于 2016.02.23 19:24 提问

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
Royal_lr   Ds   Rxr 2016.02.24 10:48
  • jxl.write.WritableCell wc = ws.getWritableCell(0, 0);不就是这样的吗,,
dcxy0
dcxy0   Ds   Rxr 2016.02.24 10:57

大概思路:

1.指定一个目录,进行遍历;
2.定义一个通用的读取excel的方法;
3.在目录中遍历,遇到excel格式文件就调用方法进行读取。
4.读取到的数据,可以暂时存到数据库,或者存在内存中(如果数据多,建议存数据库)。

kristenlee1218
kristenlee1218 能不能在我的代码的基础上给我改一改?感谢
接近 2 年之前 回复
kristenlee1218
kristenlee1218 能不能在我的代码的基础上给我改一改?感谢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!