使用Java从Excel读取数据

时间:2014-11-17 18:44:50

标签: java excel

我在Excel工作表A和B中有2列,我需要将A列(随机)分成2并分别计算B列的前半部分和后半部分的平均值。然后我需要再次划分A列,但每次向下移动一个单元格并计算平均值等。这可以仅使用Java来完成吗?因为我发现你必须使用像Apache这样的软件而我从未使用它们。

由于

2 个答案:

答案 0 :(得分:1)

是的,您可以将Excel数据保存为文本文件,并使用java.io.File,java.util.Scanner等类来读取文本文件。

答案 1 :(得分:0)

一种简单的方法是将Excel文件保存为逗号分隔值(.CSV)文件。

由于您之前从未使用过框架,因此我将向您展示如何使用OpenCSV framework

首先,您需要将此框架添加到构建路径中。将下载的.jar文件拖到Eclipse中的工作区。打开项目的属性,选择Java Build Path,选择Libraries选项卡,然后从Workspace添加一个库并选择该jar文件。

要使用它,你的课将看起来像这样,

import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import au.com.bytecode.opencsv.CSVReader;

public class CSV {

    private List<String[]> fileContent;

    public CSV(String filePath) {
        try {
            readCSV(filePath);
        } catch (IOException e) {
            System.out.print("There was an error reading this CSV file. Error follows:");
            e.printStackTrace();
        }
    }

    public void readCSV(String csvPath) throws IOException {
        // Store coupon objects in array list
        CSVReader csvReader = new CSVReader(new FileReader(csvPath));

        // Store each row into a String list
        List<String[]> csvData = csvReader.readAll();

        csvReader.close();
        fileContent = csvData;
    }

    public void printFileContent() {
        System.out.println("");
        for (String[] row : fileContent.subList(1, fileContent.size())) {

            for (String s: row) {

                 System.out.print(s + " ");

             }

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

在main方法中,您可以使用简单的

CSV csvFile = new CSV("csv/Path/Here.csv");
// Verify Results
csvFile.printFileContent();

与往常一样,请使用我的代码作为参考。学习如何自己编写代码总是更好,特别是当这个问题与家庭作业有关时。