Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java从Excel读取数据_Java_Excel - Fatal编程技术网

使用Java从Excel读取数据

使用Java从Excel读取数据,java,excel,Java,Excel,我在excel表格中有两列,A列和B列,我需要将A列(随机)分成2列,分别计算B列第一和第二部分的平均值。然后我需要再次划分列A,但每次向下移动一个单元格,并计算平均值等。这可以只用Java来完成吗?因为我发现你必须使用像Apache这样的软件,而我从未使用过它们 谢谢是的,您可以将Excel数据保存为文本文件,并使用java.io.file、java.util.Scanner等类读取文本文件。一种简单的方法是将Excel文件保存为逗号分隔的值(.CSV)文件 由于您以前从未使用过框架,因此我将

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


谢谢

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

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

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

首先,需要将此框架添加到构建路径中。将下载的.jar文件拖动到Eclipse中的工作区。打开项目的属性,选择Java构建路径,选择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("");
    }
}

一如既往,请使用我的代码作为参考。最好自己学习如何编写代码,尤其是当这个问题与家庭作业有关时。

我可以将其编程为从Java向下移动一列吗?你说的“向下移动一列”是什么意思?顺便说一下,您可以将A列和B列的值存储在二维数组中。
CSV csvFile = new CSV("csv/Path/Here.csv");
// Verify Results
csvFile.printFileContent();