제목 | phpexcel 에서 column width 계산해서 지정하는 방법 아시는분? | ||
---|---|---|---|
글쓴이 | 건곤대나이 | 작성시각 | 2015/10/27 15:41:43 |
|
|||
phpexcel을 이용해서 확장된 게시판 데이타를 excel로 출력하는데요. setAutoSize()를 이용해서 여러가지 시도를 해보았지만 해결책을 못찾겠더군요. 그래서 직접 column width를 계산하려고 하니 적용시에 에러가 나는군요. 혹시 아시는분 계시는지요? |
|||
다음글 | https에서 index.php 없애는 방법 (6) | ||
이전글 | mysql insert 할때 한글 ???표기 때문에 죽... (3) | ||
변종원(웅파)
/
2015/10/27 21:21:19 /
추천
0
|
건곤대나이
/
2015/10/28 01:03:57 /
추천
0
@웅파님
헐~ 질문하기전에는 autosize 그렇게 적용해도 안되더니 웅파님 답변보고 다시 구글에서 검색된 결과중 for($col = 'A'; $col !== 'O'; $col++) { $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setAutoSize(true); } 이걸로 적용하니 그나마 비슷하게 나오네요. 아~ 에러부분은 제가 이것저것 마구 적용하다보니 지금 코드를 뭘로했는지 안남아 있어요 ㅜㅜ |
건곤대나이
/
2015/10/28 04:26:02 /
추천
0
휴~ 주먹구구식으로 해결했습니다 ㅋ
// 전체 열(column)에 대해서 autosize 실행 $maxColumn = PHPExcel_Cell::columnIndexFromString($objWorksheet->getHighestColumn()); for($col = 0; $col < $maxColumn; $col++) { PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT); $objWorksheet->getColumnDimensionByColumn($col)->setAutoSize(true); } $objWorksheet->calculateColumnWidths(); // 전체 열(column)에 대해서 autosize 실행후 맞지 않는 부분에 대해 보정 for($col = 0; $col < $maxColumn; $col++) { $objWorksheet->getColumnDimensionByColumn($col)->setAutoSize(false); // 수동폭 지정시 꼭 호출해야 됩니다. $calculatedWidth = round( $objWorksheet->getColumnDimensionByColumn($col)->getWidth(), 0 ); //print("<p>" . $col . ":" . $calculatedWidth . "</p>"); if( $calculatedWidth < 9 ) { $objWorksheet->getColumnDimensionByColumn($col)->setWidth( round(1.8*$calculatedWidth, 0) ); } else if( $calculatedWidth < 12 ) { $objWorksheet->getColumnDimensionByColumn($col)->setWidth( round(1.6*$calculatedWidth, 0) ); } else if( $calculatedWidth < 16 ) { $objWorksheet->getColumnDimensionByColumn($col)->setWidth( round(1.4*$calculatedWidth, 0) ); } } $objWorksheet->calculateColumnWidths(); |
jebum
/
2019/05/02 18:25:45 /
추천
0
건곤대나이 // 감사합니다 autoSize false 를 안해서 변경이 안되고 있었네요 ㅠ
|
작은별
/
2020/12/28 12:20:15 /
추천
0
건곤대나이 // 저도 위 내용 참조해서 비슷하게 동작 하고 있습니다. 다만 아래 부분에서 셀에 한글이 들어 있는경우에는 width 값이 문제가 있는것 같습니다. 영어로 되어 있는 내용은 잘 되는데 한글이 들어있으면 잘 안되네요. ^^ $objWorksheet->getColumnDimensionByColumn($col)->getWidth() |
매뉴얼에도 나와있는 기능인데 에러를 알아야 답변을 하겠죠? ^^
autosize에 대한 질문답변은 구글에 넘쳐나구요.