메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
30 그누보드5 검색최적화 방법입니다 file 2019.04.29 876
29 그누보드 확장변수 사용 2016.12.22 2634
28 그누보드 카카오톡 로그인 V2 플러그인 file 2021.03.24 290
27 그누보드 이력서 스킨 file 2021.03.24 151
26 게시판 스킨 파일 구조 2016.12.22 2343
25 게시판 스킨 목록 페이지에 이전 다음 페이지 링크 만들기 2017.04.12 1912
24 게시판 기본 스킨 목록 페이지 살펴보기 2 - 상세 설명 2017.04.13 2321
23 게시판 기본 스킨 목록 페이지 살펴보기 1 - list.skin.php 2017.04.13 2959
22 게시판 기본 스킨 내용보기 페이지 살펴보기 2 - 상세 설명 2017.04.13 2528
21 게시판 기본 스킨 글쓰기 페이지 살펴보기 2 - 상세 설명 2017.04.13 2916
20 게시판 기본 스킨 글쓰기 페이지 살펴보기 1 - write.skin.php 2017.04.13 2551
19 게시판 글쓰기 페이지에 스마트 에디터 2개 이상 사용하기 2017.04.12 2778
18 게시판 글쓰기 페이지에 다음 API 주소 입력기 사용하기 file 2017.04.12 3729
17 게시물 관리 기능을 업데이트 file 2024.04.09 0
16 style 수정시 서버에서 로딩되게 하기 2019.12.13 255
15 sql 바인딩 그누보드에서 해보기 2024.04.09 0
14 NICE API 인증모듈 file 2024.04.09 1
13 mysql concat 날짜와 시간을 문자열로 합치기 시간의 크기 비교 2023.05.16 131
12 mov 업로드시 mp4 자동 변환 file 2024.04.09 0
11 jQuery 요소(elements) 미디어 컨버팅 플러그인 file 2019.12.13 320
Board Pagination Prev 1 2 3 4 Next
/ 4

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved