我正在努力寻找从类似Excel文档的文件中读取数据的最佳方法。它不一定需要是一个真正的excel文档,只需要任何允许您以网格格式输入数据的文件。我可以进行类似操作的东西:
String val = file.readString(column,row);
float val2 = file.readFloat(column,row);
对不起,我通常会在这里发布问题之前做更多的研究,但我很难找到很多信息。我看到的很多都是读取excel文件的第三方图书馆。我真的希望如果可能的话,我可以避免下载库,并希望使用内置库。
所以我想我的问题简而言之是:最合适的文件格式是什么?从该文件中读取数据的最佳方式是什么?
我首先想到的是CSV。CSV文件只是具有.csv
文件扩展名的常规文本文件。数据以以下格式存储:
cell,anothercell,athirdcell
anotherrow,anothercellonthenewrow,thirdcellofsecondrow
有关更多细节,请阅读此处的CSV规范。
选项1
将数据存储在CSV中,并使用任何类型的读取器(例如BufferedReader)进行读取。如果您想使用Excel/LibeOffice输入数据,这可能是最简单、最快的解决方案。
请查看这些线程中的答案,了解各种解决方案。
String csvfile = path;
BufferedReader br = null;
String line = "";
String cvsSplitby = ";";
try {
br = new BufferedReader(new FileReader(csvfile));
while ((line = br.readLine()) != null) {
String[] i = line.split(cvsSplitby);
// do stuff
}
} catch (all kind of exceptions e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
希望我没有错过任何重要的事情
选项2
使用POI Apache。
选项3
我在JXL方面有一些不错的经验,但我知道您不想包含太多的外部lib。(我刚刚看到它已经有一段时间没有更新了。考虑其他选项!)