我想读取xls和xlsx文件。

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

myWorkBook = WorkbookFactory.create(file);


我的构建gradle如下所示:
应用插件:“ 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')
}


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


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


任何想法可能有什么问题吗?

最佳答案

您的问题几乎可以肯定是以下几行:

compile files('libs/poi-3.7.jar')
compile files('libs/poi-ooxml-3.9.jar')


具体来说,有两个问题。首先,必须使用匹配版本的Apache POI jar。不支持同时使用新旧jar的混合,它们必须全部来自同一发行版。其次,您的两个罐子都是旧罐子,由于罐子的年龄而错过了某些功能。

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

10-07 15:19