2017-05-07 269 views
1

插入超過120萬條記錄時出現異常。 1張紙成功插入1條047 000記錄,並創造新的工作表時插入的記錄的其餘部分,我得到java.lang.IllegalArgumentException:工作簿已包含此名稱的工作表

java.lang.IllegalArgumentException異常:該工作簿已經包含 片這個名字

我使用這個條件創建新表

if(rowCount>1047000){ 
    wsSheet = createSheet(sheetName, xssfWorkbook); 
    createHeader(wsSheet, columsnList, xssfWorkbook, null,listResult.isNameFieldRequired()); 
    rowCount = 1; 
} 

試圖改變 sheetName
wsSheet = createSheet(sheetName, xssfWorkbook) as sheetName+"1" 

但仍然是例外。

+0

你的'sheetName'多久了?我認爲它會在特定的長度上被截斷。也可以嘗試使用'sheetName = sheetName + System.currentTimeMillis()'。而不是'sheetName +'1''來替換一些隨機工作表名稱。' –

+0

使用'workBook.getSheetIndex(sheetName)'創建新工作表之前檢查現有工作表。如果返回的索引!= -1,檢查您的邏輯的表名稱。 –

回答

0
XSSFSheet newSheetName = workbook.createSheet("sheetName"+1); 

這應該只是工作。然後根據您的代碼,您可能需要增加newSheetName變量作用域。

相關問題