phpexcel 셀 병합 후
본문
안녕하세요.
현재 PHPExcel 라이브러리를 이용하여 엑셀을 다운로드 받는 코드를 작성중입니다.
상단에 DB를 연결하여 DB값을 불러와 엑셀의 데이터에 넣어줄 예정인데요, DB 연결에는 문제가 없습니다.
다만, 1열 2열을 병합했으면 데이터가 3열부터 나와야하는데 2열부터 나오게 됩니다.
코드는 다음과 같습니다.
// 셀 병합
$objPHPExcel->getActiveSheet()->mergeCells('A1:A2');
$objPHPExcel->getActiveSheet()->mergeCells('B1:B2');
$objPHPExcel->getActiveSheet()->mergeCells('C1:H1');
$objPHPExcel->getActiveSheet()->mergeCells('I1:I2');
$objPHPExcel -> setActiveSheetIndex(0)
->setCellValue('A1', '상태')
->setCellValue('B1', '코드번호')
->setCellValue('C1', '수정 전')
->setCellValue('I1', '시간')
->setCellValue('C2', '품명')
->setCellValue('D2', '위치')
->setCellValue('E2', '수량')
->setCellValue('F2', '담당자')
->setCellValue('G2', '사용자')
->setCellValue('H2', '메모');
이렇게 실행해주면 아래 이미지처럼 테이블 병합된 부분이 잘 실행됩니다.
다만, 데이터 넣는 코드를 추가해주면 2열부터 데이터가 들어와집니다.
원래는 3열부터 데이터가 들어와야 합니다.
// 셀 병합
$objPHPExcel->getActiveSheet()->mergeCells('A1:A2');
$objPHPExcel->getActiveSheet()->mergeCells('B1:B2');
$objPHPExcel->getActiveSheet()->mergeCells('C1:H1');
$objPHPExcel->getActiveSheet()->mergeCells('I1:I2');
$objPHPExcel -> setActiveSheetIndex(0)
->setCellValue('A1', '상태')
->setCellValue('B1', '코드번호')
->setCellValue('C1', '수정 전')
->setCellValue('I1', '시간')
->setCellValue('C2', '품명')
->setCellValue('D2', '위치')
->setCellValue('E2', '수량')
->setCellValue('F2', '담당자')
->setCellValue('G2', '사용자')
->setCellValue('H2', '메모');
// db 데이터 값 불러오기
$num = 2;
while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) ){
$objPHPExcel -> setActiveSheetIndex(0)
-> setCellValue(sprintf("A%s", $num), $row['StatusName'])
-> setCellValue(sprintf("B%s", $num), $row['ProductCode'])
-> setCellValue(sprintf("C%s", $num), $row['BeforeName'])
-> setCellValue(sprintf("D%s", $num), $row['BeforeLocation'])
-> setCellValue(sprintf("E%s", $num), $row['BeforeCount'] == 0 ? '' : $row['BeforeCount'])
-> setCellValue(sprintf("F%s", $num), $row['BeforeCharge'])
-> setCellValue(sprintf("G%s", $num), $row['BeforeUser'])
-> setCellValue(sprintf("H%s", $num), $row['BeforeNote'])
-> setCellValue(sprintf("I%s", $num), date_format($row['InsertDate'], 'Y-m-d H:i'));
$num++;
}
혹시 데이터가 3열부터 들어오게 하는 방법에 대해 아시는 분 계실까요?
감사합니다..
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.