簡體   English   中英

Excel 工作表 POI 工作簿已包含工作表

[英]Excel sheet POI Workbook already contains sheet

我收到此錯誤:

工作簿已經包含一張同名的工作表

private void cleanDataSheets(XSSFWorkbook workbookTemplate) {
    int numberOfQueries = extraction.getQueries().size();
    // DATA[maxIndex][minIndex] --> ex : DATA00, DATA01, ..., DATA10
    int maxIndex = 0;
    int minIndex = 0;
    String sheetName = DATA_SHEET_NAME + maxIndex + minIndex;

    while (maxIndex < numberOfQueries) {
        Sheet sheet = workbookTemplate.getSheet(sheetName);

        if (sheet == null) {
            maxIndex++;
            minIndex = 0;

        } else {
            workbookTemplate.removeSheetAt(workbookTemplate.getSheetIndex(sheet));

            if (minIndex == 0) {
                if (workbookTemplate.getSheetIndex(sheetName) == -1) {
                    workbookTemplate.createSheet(sheetName);
                }

            }
            minIndex++;
        }
    }
}

if (workbookTemplate.getSheetIndex(sheetName)== -1)應該檢查工作簿是否已經包含此名稱的工作表,但它不起作用。 我仍然有錯誤。

感謝您的幫助 !

您是否嘗試在while循環中移動String sheetName = ...

按照您的做法,它總是嘗試在每個循環中刪除並重新創建相同的sheetName

private void cleanDataSheets(XSSFWorkbook workbookTemplate) {
    int numberOfQueries = extraction.getQueries().size();
    // DATA[maxIndex][minIndex] --> ex : DATA00, DATA01, ..., DATA10
    int maxIndex = 0;
    int minIndex = 0;


    while (maxIndex < numberOfQueries) {
        String sheetName = DATA_SHEET_NAME + maxIndex + minIndex;
        Sheet sheet = workbookTemplate.getSheet(sheetName);

        if (sheet == null) {
            maxIndex++;
            minIndex = 0;

        } else {
            workbookTemplate.removeSheetAt(workbookTemplate.getSheetIndex(sheet));

            if (minIndex == 0) {
                if (workbookTemplate.getSheetIndex(sheetName)== -1){
                    workbookTemplate.createSheet(sheetName);
                }

            }
            minIndex++;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM