Apache-Poi를 처음 사용하고 3.8 버전의 poi를 사용합니다. Excel에서 값을 쓰는 동안, 일치하면 열 이름을 확인하고, 해당 열에 값을 써서 끝내면 다시 헤더에 쓰게됩니다. 문제는 세 개의 열 값을 쓰면 마지막 열 값만 추가 또는 저장되고 처음 두 값은 열에 저장되지 않는다는 것입니다. 아무도 잘못되었는지 말할 수 있습니까? (죄송합니다, 경우에 어떤 실수)쓰는 동안 Excel에 일부 값이 누락되었습니다.
Code:
int i = 0;
Row row = sheet.createRow(i);
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_ORANGE.index);
String validate_header = null;
while (iterator.hasNext()) {
if (eiterator.hasNext()) {
validate_header = eiterator.next();
}
Cell cell = row.createCell(i);
String col_heading = iterator.next();
cell.setCellValue(col_heading);
if(col_heading.equalsIgnoreCase("Assigned Date"))
{
Add_value(i, col_heading, row, sheet);
row=sheet.getRow(0);
cell=row.getCell(i);
}
else if(col_heading.startsWith("Review"))
{
int count=-1;
int n=Col_values.get("Defect Summary").size();
for (int j = 0; j < n; j++) {
row = sheet.createRow(count);
cell = row.createCell(i);
String s="External QC Defect ";
cell.setCellValue(s);
count++;
}
row=sheet.getRow(0);
cell=row.getCell(i);
}
sheet.autoSizeColumn(i);
i++;
}
private static Sheet Add_value(int k,String name,Row row, Sheet sheet) {
System.out.println("Inside the add method");
if(name.equalsIgnoreCase("Assigned Date")||name.equalsIgnoreCase("Reported Date"))
{
vector = Col_values.get("TargetDate");
int count = 1;
System.out.println("IF Size of the vector " + vector.size());
for (int j = 0; j < vector.size(); j++) {
row = sheet.createRow(count);
cell = row.createCell(k);
String s = (String) vector.get(j);
System.out.println(s);
cell.setCellValue(s);
count++;
}
}
else
{
vector = Col_values.get("Defect Summary");
int count = 1;
System.out.println("ELSE Size of the vector " + vector.size());
for (int j = 0; j < vector.size(); j++) {
row = sheet.createRow(count);
cell = row.createCell(k);
String s = (String) vector.get(j);
System.out.println(s);
cell.setCellValue(s);
count++;
}
}
return sheet;
}
'
u는 무엇이 잘못되었는지 알 수 있습니까?
코드가와
교체? 우리가 어떻게 당신이 잘못 알고있는가 ??? –
죄송합니다. 나는 지금 추가했다. – Loga
코드를 처음부터 다시 작성하기 만하면됩니다. 너무 많은 열린 끝 (반복자)과 너무 많은 로컬 용도 (createRow 사용)가 있습니다. 또한 Java 규칙 (즉, 여기에 수용)을 따르는 것이 좋습니다. 공백을 더 많이 사용합니다. 'camelCaseNames' i.o. 'Capitalized_underscored_ones'. 특정 목적을 위해 작은 기능으로 하향식 디자인을 사용할 수 있습니다. _ 이유를 이해합니다. 추악한 POI를 사용한 첫 번째 실험. _ –