我正在尝试创建一个与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)
我之前发布的消息是编辑器弹出窗口...我能够截取屏幕截图:
编辑:发布完整代码,因为,为什么不呢。 (多个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);
}
感谢任何帮助。
答案 0 :(得分:0)
尽管这可能对其他人没有帮助,但它是我提出的解决方案,因此我将其作为答案发布。非常感谢对此的评论,但我一直讨厌Eclipse,并决定改用NetBeans IDE。右键单击“库”,“添加JAR /文件夹”并选择POI jar文件非常简单,它(以及集成的Maven安装)负责处理细节,它完全正常工作并解决了所有库依赖项。
答案 1 :(得分:0)
我认为这是由于jar文件损坏(最有可能是在第一次下载时)。在这里你可以做什么。
您可以删除maven存储库.m2/repository/org/apache/poi
中的所有poi文件夹,然后您可以通过右键单击项目&gt;更新maven。 Maven&gt;更新项目。 Eclipse将自动下载依赖项并自动重建工作区。