导入包含接口和类的包

时间:2017-05-30 16:26:46

标签: java eclipse apache-poi eclipse-neon

我正在尝试创建一个与Excel接口的Java包,所以我使用的是org.apache.poi库。我在POI site上找到了显示以下内容的文档:

阅读和重写工作簿

(truncated)
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);

当我尝试创建一个Workbook对象时,我得到的错误是它不知道类型。上面的文档没有显示导入语句,但如果我正确地阅读these POI docs,我应该可以导入org.apache.poi.ss.usermodel.Workbook,(并且它很明显可能我错了,因为我对Java很新,但是尝试以下所有的import语句都会导致Workbook类型出错。

import org.apache.poi.*;
import org.apache.poi.ss.*;
import org.apache.poi.ss.usermodel.*;

我应该注意到我正在使用Eclipse Neon,编辑并没有抱怨它无法找到包裹,因此我不确定问题出在哪里。

Workbook wb = WorkbookFactory.create(inp);

我在编辑器中遇到的实际错误是"Workbook cannot be resolved to a type",而WorkbookFactory也出现了同样的错误。

所以TL; DR是POI文档显示Workbook是org.apache.poi.ss.usermodel中的一个接口,而WorkbookFactory是同一个usermodel包中的一个类,但我无法弄清楚如何导入/正确使用它们。

编辑: 我收到的构建时间错误是

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Workbook cannot be resolved to a type
    WorkbookFactory cannot be resolved
    at spreadsheet.conversion.ConvertXLSXtoCSV.main(ConvertXLSXtoCSV.java:31)

我之前发布的消息是编辑器弹出窗口...我能够截取屏幕截图:

enter image description here

编辑:发布完整代码,因为,为什么不呢。 (多个import语句 只是在试图解决问题,主要是在绝望中。)

package spreadsheet.conversion; 
import java.text.ParseException;
import org.apache.poi.*;
import org.apache.poi.ss.*;
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.InputStream;
public class ConvertXLSXtoCSV {

    private static String inputfilename = "";
    private static String outputfilename = "";
    private static int debug = 0;


    private static void test(String arg) {
        System.out.println(arg);
    }


    public static void main(String[] args) throws ParseException, Exception {
        if (args.length != 1) {
            throw new Exception("Requires 1 parameter. Usage: ConvertXLSXtoCSV <filename>");
        }
        inputfilename = args[0];

        if(debug==1) {
            test(inputfilename);
        }
        InputStream inp = new FileInputStream(inputfilename);

        Workbook wb = WorkbookFactory.create(inp);


    }

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

尽管这可能对其他人没有帮助,但它是我提出的解决方案,因此我将其作为答案发布。非常感谢对此的评论,但我一直讨厌Eclipse,并决定改用NetBeans IDE。右键单击“库”,“添加JAR /文件夹”并选择POI jar文件非常简单,它(以及集成的Maven安装)负责处理细节,它完全正常工作并解决了所有库依赖项。

enter image description here

答案 1 :(得分:0)

我认为这是由于jar文件损坏(最有可能是在第一次下载时)。在这里你可以做什么。

您可以删除maven存储库.m2/repository/org/apache/poi中的所有poi文件夹,然后您可以通过右键单击项目&gt;更新maven。 Maven&gt;更新项目。 Eclipse将自动下载依赖项并自动重建工作区。

我和你一样面对同样的事情并设法让它变得干净。