POIFSFileSystem fs =
                new POIFSFileSystem(new FileInputStream("/testExcel.xls"));
            wb = new HSSFWorkbook(fs);

解决方案 »

  1.   

    再请问我要把HSSFSheet sheet = wb.createSheet("new sheet");如何更改呢?如何创建这个sheet,是写成wb的getSheet(XXX)方法吗?
    XXX参数又给它传什么呢?
      

  2.   

    提问前看看 poi的压缩包/docs/apidocs/index.htmlok?下面回答问题如果你想打开已有的Sheet可以用下面方法HSSFSheet getSheet(java.lang.String name) 
              Get sheet with the given name 
    或者HSSFSheet getSheetAt(int index) 
              Get the HSSFSheet object at the given index. 如果你想新建Sheet,用 HSSFSheet createSheet() 
              create an HSSFSheet for this HSSFWorkbook, adds it to the sheets and returns the high level representation. 或者 HSSFSheet createSheet(java.lang.String sheetname) 
              create an HSSFSheet for this HSSFWorkbook, adds it to the sheets and returns the high level representation. 提醒你一下,用最后这个方法创建的Sheet如果和前面的Sheet重名的话,程序没有任何异常但是,打开excel文件的时候,有时会出现非法操作。
      

  3.   

    我在根目录下建了一个excel文件名为testExcel.xls,在第一行上写了一个表头,当前的sheet取了个名字叫"new sheet",程序中如下写: POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("/testExcel.xls"));
     HSSFWorkbook wb = new HSSFWorkbook(fs);
     HSSFSheet sheet = wb.getSheet("new sheet");以下填充数据的代码不变,但测试结果是选"打开"后,EXCEL文件是空的~!不知我错在哪?
    (大哥教训的是,API文档是看了,就是没太看仔细~~:O)
      

  4.   

    没仔细看你的程序,我在上班~~~1.运行程序前一定要关闭被操作的xls文件。2.你能确定new FileInputStream("/testExcel.xls")打开了你建好的那个文件了吗?3.在资源管理器里看看文件长度是不是零,如果是零重新建一个,否则会出错,空文件长度不是0。4.你确定到运行到wb.write(os);和os.flush();吗?如果中间异常退出肯定不行。5.建议你判断一下sheet是不是null目前想到这几点
      

  5.   

    8用,大家都是程序员,互相帮助。再过十分钟下班了,祝你后面coding顺顺利利的,过个好节。
      

  6.   

    现在感觉好像没有读出来testExcel.xls这个文件,文件长度没问题,执行到 POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("/testExcel.xls"));就抛出异常了,怎么回事??