导入带有接口和 class 的包
Importing a package with an interface and a class
我正在尝试创建一个 Java 包来与 Excel 交互,所以我正在使用 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) 非常新),但尝试以下所有导入语句都会导致 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 是同一用户模型包中的 class,但我无法弄清楚如何正确 import/use 它们。
编辑:
我收到的构建时间错误是
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)
我之前发的消息是编辑器弹出...我可以截图:
编辑:发布完整代码,因为,为什么不呢。 (多个导入语句
我们只是在尝试,大部分是在绝望中。)
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);
}
感谢任何帮助。
尽管这对其他人没有帮助,但这是我想出的解决方案,所以我将其作为答案发布。非常感谢您对此的评论,但我一直讨厌 Eclipse,因此决定改用 NetBeans IDE。右键单击 Libraries,添加 JAR/Folder 和 select POI jar 文件非常简单,它(以及集成的 Maven 安装)处理了细节并且它立即完美运行并解决了所有库依赖项。
我认为这是因为 jar 文件损坏(很可能是在第一次下载时)。在这里你可以做什么。
您可以删除 maven 存储库中的所有 poi 文件夹 .m2/repository/org/apache/poi
然后您可以通过右键单击项目 > Maven > 更新项目来更新 maven。 Eclipse 将自动下载依赖项并自动重建工作区。
我面临着和你一样的事情,并且设法把它弄干净了。
我正在尝试创建一个 Java 包来与 Excel 交互,所以我正在使用 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) 非常新),但尝试以下所有导入语句都会导致 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 是同一用户模型包中的 class,但我无法弄清楚如何正确 import/use 它们。
编辑: 我收到的构建时间错误是
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)
我之前发的消息是编辑器弹出...我可以截图:
编辑:发布完整代码,因为,为什么不呢。 (多个导入语句 我们只是在尝试,大部分是在绝望中。)
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);
}
感谢任何帮助。
尽管这对其他人没有帮助,但这是我想出的解决方案,所以我将其作为答案发布。非常感谢您对此的评论,但我一直讨厌 Eclipse,因此决定改用 NetBeans IDE。右键单击 Libraries,添加 JAR/Folder 和 select POI jar 文件非常简单,它(以及集成的 Maven 安装)处理了细节并且它立即完美运行并解决了所有库依赖项。
我认为这是因为 jar 文件损坏(很可能是在第一次下载时)。在这里你可以做什么。
您可以删除 maven 存储库中的所有 poi 文件夹 .m2/repository/org/apache/poi
然后您可以通过右键单击项目 > Maven > 更新项目来更新 maven。 Eclipse 将自动下载依赖项并自动重建工作区。
我面临着和你一样的事情,并且设法把它弄干净了。