Java:从Excel样式的文档中读取的最简单方法是什么?

时间:2015-02-08 17:49:46

标签: java excel

我试图找到从类似于Excel文档的文件中读取数据的最佳方法。它不一定需要是一个实际的Excel文档,只是允许您以网格格式输入数据的任何文件。 我可以做类似的操作:

String val = file.readString(column,row);
float val2 = file.readFloat(column,row);

对不起,在我发布问题之前,我通常会尝试做更多的研究,但我很难找到很多信息。我看到的很多是第三方库,它们读取excel文件。我真的希望如果可能的话我可以避免下载库并希望使用内置库。

所以我想我的问题很简单: 什么是最合适的文件格式? 从该文件中读取数据的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

选项1

将您的数据存储为CSV并使用任何类型的阅读器(例如BufferedReader)进行阅读。如果您想使用Excel / LibreOffice输入数据,这可能是最简单,最快速的解决方案。

请查看these threads various solutions的答案。

    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获得了不错的体验,但我知道你并不想要包含太多的外部库。 (我刚看到它还没有更新。请考虑其他选项!)

答案 1 :(得分:1)

我想到的第一件事是CSV。 CSV文件只是具有.csv文件扩展名的常规文本文件。数据以这种格式存储:

cell,anothercell,athirdcell
anotherrow,anothercellonthenewrow,thirdcellofsecondrow

有关更多细节,请阅读CSV规范here