刚接触poi,所以不是很熟。
使用poi解析xlsx代码如下:
@Test
public void xmlTest() {
File file = new File("。/test1.xlsx");
FileInputStream fis;
try {
fis = new FileInputStream(file);
XSSFWorkbook book = new XSSFWorkbook(fis);
XSSFSheet sheet = book.getSheetAt(0);
XSSFRow row = sheet.getRow(0);
XSSFCell cell = row.getCell(1);
System.out.println(cell.getRichStringCellValue());
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("===========================");
}

}
当断点运行到红色字体的时候,程序就一直不动了。也不报错。
原先以为是包冲突什么的,确认不是这个问题。
于是,我又创建了一个新的xlsx文件,只在row:0,cell:1这个位置上面赋值;继续断点调试,发现当运行到红色字体部分花了2-3秒钟,能够得到该位置上面的值。
但是原来的test1.xlsx也不是很大,就一个sheet,里面被编辑的cell也没有超过200个。应该不至于停在那边不动把?
还是有什么其他的原因?请各位大虾指点迷津。

解决方案 »

  1.   

    停在那2,3秒也还好,是正常的。
    之前一直停在哪,可能是文件的问题。或者去官网上下载个最新的包试试。http://poi.apache.org/download.html
      

  2.   

    以下是我使用的jar包,大虾看看是不是有问题
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-examples</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
    <version>2.3.0</version>
    </dependency>
      

  3.   

    以下是我使用的jar包,大虾看看是不是有问题
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-examples</artifactId>
    <version>3.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
    <version>2.3.0</version>
    </dependency>
      

  4.   

    包应该没有问题。怀疑:第一,file的路径是不是写错了,路径下文件是不是存在
    File file = new File("d://test1.xlsx");
    第二,excel是不是07及以上的。XSSFWorkbook book = new XSSFWorkbook(fis);
    XSSFSheet sheet = book.getSheetAt(0);改成下面这样,看是什么情况。Workbook  book = new XSSFWorkbook(fis);
    XSSFSheet sheet = (XSSFSheet) book.getSheetAt(0);需要引进包
    import org.apache.poi.ss.usermodel.Workbook;第三,文件是不是有问题,再新建一个excle,把原来的内容复制进新的excle 再试试。
      

  5.   

    是不是本来是excel03版的,只是把后缀名改成xlsx了?