Я копирую данные в таблицу 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());
}
}
}