2013-07-03 2 views
2

나는 쿼리를 가지고 있는데, 나는 데이터가있는 많은 열을 포함하는 엑셀 시트를 생성했다.컬럼의 너비를 증가시키고 지수 값을 가지지 않기 위해서

//shown below how the value is passed for that column 
private Long abc_Id; 
abcdeed.abc_Id(13243534540L); 

HSSFCellStyle[] cellStyles = new HSSFCellStyle[11]; 
    HSSFCellStyle styleHeader = null; 
    HSSFCellStyle styleHeaderRBorder = null; 
    HSSFCellStyle cellStyleReportName = null; 
    HSSFCellStyle cellStyle00 = null; 
    HSSFCellStyle style_WhiteBg = null; 

아래 그림과 내가 지금 문제를 abc_ID 열

if(columnHeaders[i].equals("abc_Id") && abcdeed.getabc_Id() != null){ 
        cell.setCellValue(abcdeed.getabc_Id()); 
        cell.setCellStyle(cellStyles[9]); 

다음과 같은 셀 스타일을 설정 한대로 이제 abc_ID 및 백엔드에서 오는 가치라는 이름의 열이 긴 타입입니다 마지막으로 엑셀 시트가 생성 될 때 마지막으로 그 시트를 열면 먼저 abc_Id 열의 값이 압축되어 보입니다. 처음에는 값이 지수 유형이고 열이 압축 된 유형이기 때문에 열 너비를 지정해야합니다. 하나를 확장하고 값이 지수 유형이 아니어야합니다. cellStyles를 늘리려고했지만 작동하지 않습니다. 해결책을 제안하십시오.

답변

0

셀이 지수를 표시하는 이유는 입력하는 값의 유형과 관련이있는 셀 너비와 관련이 없습니다.

숫자가 문자열로 입력 된 경우 셀은 뷰에서 전체 값을 숨기지 만 전체 값은 셀에 계속 남아 있습니다.

값이 숫자이기 때문에 셀의 숫자 형식 매개 변수를 편집하여 소수점 뒤에 표시 할 자릿수를 표시해야합니다. 유효한 number format codes을 참조 할 수 있습니다.

+0

그러나 시트에서 마우스로 셀의 너비를 늘리면 값이 숫자로 조정됩니다. –

+0

U가 이것을 참조하면 http://stackoverflow.com/a/12067137/1211000이 도움이됩니다. – swamy

+0

예. 기본 동작을 원하지 않으면 무시해야합니다. 내가 귀하의 2 옵션을 언급 : 문자열 데이터 셀을 사용하여 당신이 있었거나 포맷 문자열을 사용하여 번호의 레이아웃을 포맷하거나 크기를 조정합니다. – travega

1

해당 셀의 모든 행에서 CELL_TYPE_STRING을 사용하십시오.

rows.getCell(abc_Id_Cell_No).setCellType(Cell.CELL_TYPE_STRING); 

와 단부

Sheet.autoSizeColumn(abc_Id_Cell_No); 

이것

는 열 폭의 크기를 조정한다 문자열 autoSizeColumn 모든 셀 값을 변경한다.