我在Excel工作表A和B中有2列,我需要将A列(随机)分成2并分别计算B列的前半部分和后半部分的平均值。然后我需要再次划分A列,但每次向下移动一个单元格并计算平均值等。这可以仅使用Java来完成吗?因为我发现你必须使用像Apache这样的软件而我从未使用它们。
由于
答案 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();
与往常一样,请使用我的代码作为参考。学习如何自己编写代码总是更好,特别是当这个问题与家庭作业有关时。