티스토리 뷰
Create가 아니다 Modify 개념이다. 즉 엑셀의 셀 데이터를 수정한뒤 그대로 다시 저장하는 것.
<?php header("Content-Type:text/html; charset=utf-8"); header("Content-Encoding:utf-8"); ini_set('memory_limit', '128M'); //error_reporting(E_ALL); set_time_limit(0); set_include_path(get_include_path() . PATH_SEPARATOR . './phpexcel/Classes/'); include_once 'PHPExcel.php'; include_once 'PHPExcel/IOFactory.php'; $mode = $_POST['mode']; $G2 = $_POST['G2']; $G3 = $_POST['G3']; $G4 = $_POST['G4']; $objPHPExcel = new PHPExcel(); $fileName = './testFile.xls'; $fileType = 'Excel5'; echo "<!DOCTYPE html> <html> <head> <meta charset='utf-8'> </head> <body>"; try{ //읽기모드 if(!$mode){ $objReader = PHPExcel_IOFactory::createReaderForFile($fileName); $objExcel = $objReader->load($fileName); $objExcel->setActiveSheetIndex(0); $objWorksheet = $objExcel->getActiveSheet(); $highestRow = $objWorksheet->getHighestRow(); // 열4 $highestColumn = $objWorksheet->getHighestColumn(); // 행G $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // G를 7 $G_count = 2; echo '엑셀 파싱 결과'; echo "<form name='excelFormData' method='POST' action='$PHP_SELF'>"; echo '<table border=1>'; for($row = 1; $row <= $highestRow; ++$row){ echo '<tr>'; for($col = 0; $col < $highestColumnIndex; ++$col){ if($row > 1 && $col == 6){ echo "<td><input type=text name=G".$G_count." value=".$objWorksheet->getCellByColumnAndRow($col, $row)->getValue()." /></td>"; $G_count++; }else{ echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>'; } } echo '</tr>'; } echo '</table> <br /><br />'; echo "<input type='hidden' name='mode' value='update' />"; echo "<input type='submit' value='확인' />"; echo "</form>"; } //저장모드 if($mode == 'update'){ //echo $G2; //echo $G3; //echo $G4; $objReader = PHPExcel_IOFactory::createReader($fileType); $objPHPExcel = $objReader->load($fileName); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('G2', $G2) ->setCellValue('G3', $G3) ->setCellValue('G4', $G4); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType); $objWriter->save($fileName); echo '변경 내역 저장 중'; $objWorksheet = $objPHPExcel->getActiveSheet(); $highestRow = $objWorksheet->getHighestRow(); // 열의 참조 : 4 $highestColumn = $objWorksheet->getHighestColumn(); // 행의 참조 : F $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // 알파벳 : F를 6 echo '<table border=1>'; for($row = 1; $row <= $highestRow; ++$row){ echo '<tr>'; for($col = 0; $col < $highestColumnIndex; ++$col){ echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>'; } echo '</tr>'; } echo '</table> <br /><br />'; } }catch(exception $e){ // } echo "</body> </html>"; ?>
'■ 백엔드 ■ > PHP' 카테고리의 다른 글
직접 실습 하기 : 04.엑셀문서 생성하기 (0) | 2014.04.17 |
---|---|
직접 실습 하기 : 03.셀 데이터 삭제 (0) | 2014.04.17 |
직접 실습하기 01.엑셀파일 읽기 (0) | 2014.04.17 |
Developer Documentation : 11.부록 (0) | 2014.04.17 |
Developer Documentation : 10.읽기 쓰기 (준비중) (0) | 2014.04.17 |
댓글