无法访问 NPOIFSFileSystem

Man*_*tas 1 java excel android apache-poi

我想阅读 xls 和 xlsx 文件。

我使用这一行来访问我的工作簿。

myWorkBook = WorkbookFactory.create(file);
Run Code Online (Sandbox Code Playgroud)

我的构建 gradle 看起来像这样:apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "com.example.application"
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile files('libs/poi-3.7.jar')
    compile files('libs/poi-ooxml-3.9.jar')
    compile project(':aFileChooser')
}
Run Code Online (Sandbox Code Playgroud)

我无法编译我的项目,因为我收到以下错误:

错误:(210, 41) 错误:无法访问 org.apache.poi.poifs.filesystem.NPOIFSFileSystem 的 NPOIFSFileSystem 类文件未找到错误:任务 ':app:compileDebugJava' 的执行失败。编译失败;有关详细信息,请参阅编译器错误输出。

任何想法可能是错误的?

Gag*_*arr 5

你的问题几乎肯定是这些行:

compile files('libs/poi-3.7.jar')
compile files('libs/poi-ooxml-3.9.jar')
Run Code Online (Sandbox Code Playgroud)

具体来说,两个问题。首先,您必须使用匹配版本的 Apache POI jar。不支持同时使用新旧 jars,它们必须来自同一个版本。其次,您的两个罐子都是旧罐子,由于年代久远,缺少一些功能。

将它们切换为来自 POI 3.10.1(或更新的,例如撰写本文时为 3.11 beta 2),然后您应该拥有所需的类