메뉴 건너뛰기

조회 수 2 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

db_key_value()

$db->insert()

$tools->errMsg()

등의 함수는 제가 만들어 쓰는 함수라서

DB입력 부분, alert창 부분은 자신에게 맞게 수정하셔야 해요.

PHPExcel 는 압축 풀어서 현재 디렉토리에 올리시면 됩니다.

 

 

[파일명 : content.php]

 

<form id="residents_excel_up" method="post" enctype="multipart/form-data" action="content_sub.php" enctype="multipart/form-data">
        <input type="file" id="client_excel_file" name="client_excel_file" accept="application/vnd.ms-excel"  style="display: none">
    </form>

 

 

 

<div class="rt">
                    거래처 일괄 등록 (엑셀파일) :
                    <a class="table_top_btn" href="./download.php?file=client_list_sample.xls&url=./files/sample/client_list_sample.xls"><i class="fa fa-download" style="color:#00a5ba;"></i> 샘플파일 다운로드</a>
                    <span class="table_top_btn" onclick="resident_info_lists_up()"><i class="fa fa-upload" style="color:#00a5ba;"></i> 파일등록</span>
                </div>

 

<script>

$("#client_excel_file").change(function(e) {
            if ($(this).val() == '') {
                alert('파일 없음');
                return false;
            }
            // 폼전송
            var formData = new FormData($("#residents_excel_up")[0]);
            $("#residents_excel_up").submit();

        });

 

function  resident_info_lists_up(){
            $("#client_excel_file").click();
        }

</script>

 

 

 

 

 

[파일명 : content_sub.php]

<?php
include_once('./_common.php');

$upfile_dir = "./files";

// 현장 파일업로드 처리
$upfile_name = $_FILES['client_excel_file']['name']; // 파일이름
$upfile_type = $_FILES['client_excel_file']['type']; // 확장자
$upfile_size = $_FILES['client_excel_file']['size']; // 파일크기
$upfile_tmp  = $_FILES['client_excel_file']['tmp_name']; // 임시 디렉토리에 저장된 파일명

// 등록하려는 파일을 현재 자료실의 지정디렉토리에 저장
if(!copy($_FILES['client_excel_file']['tmp_name'],"$upfile_dir/$upfile_name")) {
    //echo"<script>alert('엑셀 업로드에 문제가 발생했습니다.');</script>";
    $tools->errMsg("엑셀 업로드에 문제가 발생했습니다.");
}

if(preg_match("/(\.(csv|CSV|xls|xlsx))$/i",$upfile_name)) {
} else {
    echo ("<script>window.alert('업로드를 할수 없는 파일 입니다.\\n\\r확장자가 csv,xls,xlsx 인 경우만 업로드가 가능합니다.'); history.go(-1) </script>");
    exit;
}

if ($upfile_name) {
    $Result = array(
        'In_Data' => array(
            'Same' => 0,  // 성공 갯수
            'Success' => 0,  // 실패 갯수
            'Failed' => array()  // 실패한 경우의 배열
        )
    );
    // 저장된 파일을 읽어 들인다
    $filename = $upfile_dir . "/" . $upfile_name; // 읽어들일 엑셀 파일의 경로와 파일명을 지정한다.

    require_once "./PHPExcel/Classes/PHPExcel.php"; // PHPExcel.php을 불러옴.
    $objPHPExcel = new PHPExcel();
    require_once "./PHPExcel/Classes/PHPExcel/IOFactory.php"; // IOFactory.php을 불러옴.

    //try {
    $objReader = PHPExcel_IOFactory::createReaderForFile($filename); // 업로드 된 엑셀 형식에 맞는 Reader객체를 만든다.
    $objReader->setReadDataOnly(true); // 읽기전용으로 설정
    $objExcel = $objReader->load($filename); // 엑셀파일을 읽는다
    $objExcel->setActiveSheetIndex(0); // 첫번째 시트를 선택
    $objWorksheet = $objExcel->getActiveSheet();
    $rowIterator = $objWorksheet->getRowIterator();
    foreach ($rowIterator as $row) { // 모든 행에 대해서
        $cellIterator = $row->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(false);
    }
    $maxRow = $objWorksheet->getHighestRow(); // 마지막 행
    $suc = 0;
    $sam = 0;
    $fail = 0;
    for ($i = 2; $i <= $maxRow; $i++) {
        $dataA = $objWorksheet->getCell('A' . $i)->getValue(); // A열
        $dataB = $objWorksheet->getCell('B' . $i)->getValue(); // B열
        $dataC = $objWorksheet->getCell('C' . $i)->getValue(); // C열
        $dataD = $objWorksheet->getCell('D' . $i)->getValue(); // D열
        $dataE = $objWorksheet->getCell('E' . $i)->getValue(); // E열
        $dataF = $objWorksheet->getCell('F' . $i)->getValue(); // F열
        $dataG = $objWorksheet->getCell('G' . $i)->getValue(); // G열
        $dataH = $objWorksheet->getCell('H' . $i)->getValue(); // H열
        $dataI = $objWorksheet->getCell('I' . $i)->getValue(); // I열

        if ($dataB) {
            $org_business = $dataB;
            $rep_business = str_replace("-", "", $dataB);

            $cnt_before = $db->cnt('거래처관리', 'where 사업자번호 = "' . $org_business . '" or 사업자번호 = "' . $rep_business . '"');

            if ($cnt_before > 0) {
                $Result['In_Data']['Same']++;
                continue;
            } else {
                $client_data = array(
                    '거래처명' => $dataA,
                    '사업자번호' => $dataB,
                    '대표자' => $dataC,
                    '업태' => $dataD,
                    '종목' => $dataE,
                    '주소' => $dataF,
                    '전화번호' => $dataG,
                    '팩스' => $dataH,
                    '이메일' => $dataI,
                    '입력일' => date('Ymd'),
                    'signdate' => time()
                );
                $result = $db->insert("거래처관리", db_key_value($client_data));

                if ($result) {
                    $Result['In_Data']['Success']++;
                } else {
                    $Result['In_Data']['Failed'][] = $dataB;
                }
            }
        }
    }
}
if(!unlink($filename)){ $tools->msg("파일삭제 안됨(unlink)"); }
?>

<script>
    alert('처리되었습니다!\n\n성공: ' + <?php echo $Result['In_Data']['Success']; ?> + '\n실패: ' + <?php echo count($Result['In_Data']['Failed']); ?> + '\n중복: ' + <?php echo $Result['In_Data']['Same']; ?>);
    location.href='gurelist.php';
</script>


  1. 유튜브 동영상 시간체크 후 폼 전송하기

    Date2024.04.09 Views0
    Read More
  2. mov 업로드시 mp4 자동 변환

    Date2024.04.09 Views0
    Read More
  3. 웹상에서 PDF 뷰어 소스 (copyright 2021 Mozilla)

    Date2024.04.09 Views1
    Read More
  4. 특정국가 차단하기

    Date2024.04.09 Views1
    Read More
  5. NICE API 인증모듈

    Date2024.04.09 Views1
    Read More
  6. 엑셀파일 읽어서 바로 DB에 업로드하기

    Date2024.04.09 Views2
    Read More
  7. admin 비밀번호 생각이 안 날때, 비번 바꾸는 간단한 소스 (SHA256 용)

    Date2024.04.09 Views3
    Read More
  8. 접속주소가 https로 되여 있는지 판단하여 $g5_path['url']를 수정하기

    Date2024.04.09 Views8
    Read More
  9. 회원가입 못하게

    Date2023.01.05 Views79
    Read More
  10. mysql concat 날짜와 시간을 문자열로 합치기 시간의 크기 비교

    Date2023.05.16 Views131
    Read More
  11. 회원 등급(권한)에 따라서 다른 메시지 보이기

    Date2021.03.24 Views146
    Read More
  12. 그누보드 이력서 스킨

    Date2021.03.24 Views151
    Read More
  13. style 수정시 서버에서 로딩되게 하기

    Date2019.12.13 Views255
    Read More
  14. 그누보드 카카오톡 로그인 V2 플러그인

    Date2021.03.24 Views289
    Read More
  15. 카운트다운 스크립트

    Date2019.12.13 Views317
    Read More
  16. jQuery 요소(elements) 미디어 컨버팅 플러그인

    Date2019.12.13 Views320
    Read More
  17. 글 작성시 랜덤형 자동 댓글로 인사 멘트남기기

    Date2019.12.13 Views323
    Read More
  18. 이름 마지막 한자리 별표 처리

    Date2019.12.13 Views326
    Read More
  19. fullcalendar 달력 게시판 스킨

    Date2021.03.24 Views361
    Read More
  20. 특정 게시판에서 이미지 파일만 업로드 허용하기

    Date2019.12.09 Views367
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved