메뉴 건너뛰기

조회 수 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>


List of Articles
번호 제목 날짜 조회 수
50 영카트5 DB 테이블별로 덤프하기 2019.04.29 864
49 그누보드5 검색최적화 방법입니다 file 2019.04.29 876
48 쉽고 간편한 인쇄 팁 file 2019.04.29 743
47 특정 게시판에서 이미지 파일만 업로드 허용하기 file 2019.12.09 367
46 우측 퀵메뉴 2019.12.13 382
45 style 수정시 서버에서 로딩되게 하기 2019.12.13 255
44 이미지에 워터마크 넣기 2019.12.13 389
43 iframe 금지된 사이트 iframe 으로 불러오기 2019.12.13 385
42 글 작성시 랜덤형 자동 댓글로 인사 멘트남기기 2019.12.13 323
41 jQuery 요소(elements) 미디어 컨버팅 플러그인 file 2019.12.13 320
40 이름 마지막 한자리 별표 처리 2019.12.13 326
39 카운트다운 스크립트 2019.12.13 317
38 네이버 밴드 글 가져오기 2019.12.13 485
37 회원 목록을 select 로 불러와서 선택시 input 에 집어넣기 file 2019.12.13 588
36 링크 클릭시 특정영역에 페이지 불러오기 (아이프레임X) 2019.12.13 1225
35 '정상적으로 로그인하여 접근하시기 바랍니다.' 해결 방법 file 2020.12.09 426
34 회원 등급(권한)에 따라서 다른 메시지 보이기 2021.03.24 146
33 그누보드 카카오톡 로그인 V2 플러그인 file 2021.03.24 290
32 fullcalendar 달력 게시판 스킨 file 2021.03.24 361
31 그누보드 이력서 스킨 file 2021.03.24 151
Board Pagination Prev 1 2 3 4 Next
/ 4

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved