Почему я получаю org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: исключение из правила M2.4? - PullRequest
1 голос
/ 16 апреля 2019

Я копирую данные в таблицу Excel с помощью Apache Poi.Я хочу скопировать из столбца D в столбец G как тот же лист.Но когда я пытаюсь скопировать из столбца D в столбец G, я получаю исключение -

INFO [http-nio-9080-exec-8] org.apache.cxf.phase.PhaseInterceptorChain.doDefaultLogging Application{http://service.ccc.com/}excelS выдало исключение, разматывая сейчас: org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: исключение из правила M2.4: эта ошибка НИКОГДА не случится, если так, отправьте письмо команде разработчиков, спасибо!ПРЕДУПРЕЖДЕНИЕ [http-nio-9080-exec-8] org.apache.cxf.phase.PhaseInterceptorChain.unwind Исключение в handleFault на перехватчике org.apache.cxf.jaxrs.interceptor.JAXRSDefaultFaultOutInterceptor@33b5interache.x.ff.6.: Правило M2.4 исключение: эта ошибка НИКОГДА не случится, если да, пожалуйста, отправьте письмо команде разработчиков, спасибо!

Скажите, пожалуйста, где проблема и как ее решить ..

public class excelS {


   public void copyColumn(String fileId, int sourceCol, int targetColumn) {
        Long l = Long.valueOf(fileId);
        excelDetail x = (excelDetail) componentList.get(l);
        Sheet sheet = x.wb.getSheetAt(x.wb.getSheetIndex(x.sheetName));

        for (int rId = 0; rId <= sheet.getLastRowNum(); rId++) {
            Row row = sheet.getRow(rId);
            if (row != null) {
                Cell oldCell = row.getCell(sourceCol);
                if (oldCell != null) {
                    Cell newCell = row.createCell(targetColumn, oldCell.getCellType());
                    cloneCellWithStyle(newCell, oldCell);
                } else {
                    row.createCell(targetColumn, Cell.CELL_TYPE_BLANK);
                }
            }
        }

        try {
            FileOutputStream fos = new FileOutputStream(x.path);
            x.wb.setForceFormulaRecalculation(true);
            x.wb.write(fos);
            fos.close();
            rm.setResult("success");
            rm.setValue("column has been copied.");
        } catch (IOException e) {
            e.printStackTrace();
            rm.setResult("error");
            rm.setValue(e.getMessage());
        }
    }
}
...