java - 如何使用 apache POI 将新工作表添加到现有的 excel 工作簿?

标签 java apache-poi

我正在尝试将列表数据写入一本工作簿中的多个 Excel 工作表。与第一个列表一样,代码将为列表 [1] 创建新工作簿并创建新工作表,对于第二个列表,它将在现有工作簿中创建新工作表,依此类推。所以我写了下面的代码。但它不起作用,我只能看到列表 [1] 的第一张纸。有人可以帮我提供任何替代解决方案吗?

下面是我写的代码

    ArrayList<List<String>> tempresultdata=this.getSummaryList();
    HSSFWorkbook workbook = new HSSFWorkbook();
    String fileName="Path\\To\\XLS";
    File file = new File(fileName);
    FileOutputStream out;           
    if(!file.exists()) // This will create new workbook with new sheet if it doesnt exists{

                HSSFSheet mySheet = workbook.createSheet(sheetname);
                writeExcel(mySheet,tempresultdata);
    } else // This add new sheet to above created workbook {
            try {
                HSSFWorkbook myWorkBook = (HSSFWorkbook) WorkbookFactory.create(file);
                workbook=myWorkBook;
                HSSFSheet mySheet = (HSSFSheet) workbook.createSheet(sheetname);
                writeExcel(mySheet,tempresultdata);                 
            } catch (InvalidFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }   
    try{
        out = new FileOutputStream(fileName,true);
        workbook.write(out);
        out.close();
        }catch(Exception e){ 
            e.printStackTrace();
        }

谢谢, 普里扬克·沙阿

最佳答案

如果文件不存在,则此代码会创建新文件并创建示例工作表 1,但如果文件存在,则会将新工作表添加到现有的 excel 文件中。

    HSSFWorkbook workbook = null;
    File file = new File(context.getExternalFilesDir(null), "Sample.xls");
    FileOutputStream fileOut = new FileOutputStream(file);

    if (file.exists()) {
        try {
            workbook = (HSSFWorkbook)WorkbookFactory.create(file);
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        }
        HSSFSheet sheet = workbook.createSheet("Sample sheet2");
    }
    else{
        workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Sample sheet1");
    }
    workbook.write(fileOut);
    fileOut.close();

关于java - 如何使用 apache POI 将新工作表添加到现有的 excel 工作簿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459181/

相关文章:

java - 使用 apache poi (.xlsx) 的 excel 2007 无法读取内容

java - 通过从模板编程创建 Excel 报告

java - try catch 异常(int 中的字母)

java - 在 Netbeans 7.4 中将 Java 应用程序转换为 JApplet

java - 使用udl文件连接到java中的access数据库

java - 使用Apache POI在Excel中使用千位分隔符格式化数字

java - 不应用 Java 中运算符的优先级

java - JPanel 创建两次

java - Apache Poi Word 文档打开报 NullPointerException

java - MAPIMessage 的 getdate 函数返回 ChunkNotFoundException