1. getdata.php
- 네임스페이스 WebadminModel;
-
- ExtendSpaceExcel 사용;
-
- …
- 약간
- … …
-
- // 데이터 가져오기
- $dataBillArr = $this->get_list_bysql($sql);
-
- // 데이터의 0과 1을 yes와 no로 바꿉니다
- // PHPExcel에는 처리를 위한 내장 메서드가 있지만 결과는 TRUE/FALSE입니다. 여기서 직접 처리하세요
- $this->_formatZero($dataBillArr, array('taxflag', 'payflag', 'removeflag' )) ;
-
- // 결제 상태 교체
- foreach ($dataBillArr as $key => $value) {
- switch ($value['statustype']) {
- case '- 1 ':
- $dataBillArr[$key]['statustype'] = '취소됨';
- 중단;
- 케이스 '-2':
- $dataBillArr[$key]['statustype'] = '취소 및 환불됨';
- 중단;
- 사례 '0':
- $dataBillArr[$key]['statustype'] = '결제 보류 중';
- 중단;
- 사례 ' 1':
- $dataBillArr[$key]['statustype'] = '배송 예정';
- 중단;
- 케이스 '2':
- $dataBillArr[$key][' statustype' ] = '수신 예정';
- break;
- case '3':
- $dataBillArr[$key]['statustype'] = '완료됨';
- break;
- case ' 10':
- $dataBillArr[$key]['statustype'] = '반환 완료';
- 중단;
- 케이스 '11':
- $dataBillArr[$key][' statustype'] = '환불 완료';
- 중단;
- 기본값:
- $dataBillArr[$key]['statustype'] = '없음';
- 중단;
- }
- }
-
- // 내보낼 필드와 해당 헤더 이름을 설정합니다.
- $header = array(
- array('title'=>'플랫폼 주문 번호', 'field'= >'billcode ', 'type'=>'string', 'autosize'=>true),
- array('title'=>'사용자 계정', 'field'=>'username' , 'type' =>'string', 'autosize'=>true),
- array('title'=>'사용자 닉네임', 'field'=>'nickname'),
- array('제목 '=>'사업자', 'field'=>'shopuser', 'autosize'=>true),
- array('title'=>'Guanyi ERP 주문 번호' , 'field'= >'erpsn', 'type'=>'string', 'autosize'=>true),
- array('title'=>'결제 번호', 'field' =>'bspaycode ', 'type'=>'string', 'autosize'=>true),
- array('title'=>'본딩 배치 번호', 'field'=> 'bsbatchcode', 'type '=>'string', 'autosize'=>true),
- array('title'=>'국경을 넘는지', 'field'=>'taxflag') ,
- array('title'=>'주문 상태', 'field'=>'statustype'),
- ……
- 생략
- ……
- );
-
- / / Excel 생성 및 내보내기 작업을 수행하기 위한 인터페이스 호출
- $filename = 'Order flow sheet_' .date('Y year m Month d day_His', time())
- Excel: :export($dataBillArr, $header, $filename);
코드 복사
두、Excel.class.php
- 네임스페이스 ExtendSpace;
- /**
- * 클래스 Excel 일반 Excel 인터페이스, 내보내기 및 내보내기 작업 처리
- * 사용 지침:
- * 1. 가져오기
- * 계속됩니다. . .
- * 2. 내보내기
- * ExtendSpaceExcel 사용;
- * .....
- * Excel::export($dataArr, $header, $filename);
- *
- * @package ExtendSpace
- * @author xxxxx 2015-08-27 14:07:14
- * @version
- */
- class Excel {
- // private static $objPHPExcel = null;
- /**
- * 항목 파일: Excel 내보내기
- * @return
- */
- public static function import($data, $header, $filename='hms_excel_export') {
- // PHPExcel 클래스 라이브러리 소개
- import('phpexcel.PHPExcel', dirname(__FILE__) . '/', '.php') // 이는 TP에 고유하며 include 또는 require를 직접 사용할 수 있습니다.
- // 초기화 settings
- $objPHPExcel = new PHPExcel();
- $objPHPExcel->getProperties()->setCreator('test')->setLastModifiedBy('test') // 여기에 중국어 왜곡 문자가 설정됩니다. , 아직 해결되지 않았습니다.
- // ->setTitle('제목이 바로 이겁니다')
- // ->setSubject('이것이 무엇입니까')
- // ->setDescription( '설명입니다')
- // ->setKeywords('키워드입니다')
- // ->setCategory('디렉토리입니다');
- // var_dump($ objPHPExcel->getProperties()); 종료;
-
- // 작업할 현재 활성 워크시트 가져오기
- $objActSheet = $objPHPExcel->getActiveSheet();
-
- / / 헤더 쓰기
- foreach ( $header as $k => $v) {
- $colIndex = self::_getHeaderIndex($k);
- $objPHPExcel->setActiveSheetIndex(0)-> ;setCellValue($colIndex . '1' , $v['title']);
-
- // 열이 너비에 자동으로 적응해야 하는지 여부
- if (!empty($v['autosize) '])) {
- $objActSheet-> getColumnDimension($colIndex)->setAutoSize(true);
- }
- }
-
- // 두 번째 줄부터 데이터 쓰기 , 첫 번째 줄은 헤더입니다.
- $rowNum = 2;
- foreach($data as $rows){ // 데이터를 탐색하여 행을 가져옵니다
- foreach($header as $kk => $ vv){ // 셀에 쓰기
- $colIndex = self::_getHeaderIndex($kk);
-
- // 셀 데이터 형식 지정 여부
- if (!empty($vv[ 'type'])) { // 예
- switch ( $vv['type']) {
- case 'number':
- $type = PHPExcel_Cell_DataType::TYPE_NUMERIC // Number
- break; ;
- case 'boolean':
- $type = PHPExcel_Cell_DataType::TYPE_BOOL; // 부울 값, 0->FALSE; 1->TRUE
- break;
- 기본값:
- $ type = PHPExcel_Cell_DataType::TYPE_STRING; // 문자열
- break ;
- }
- $objActSheet->setCellValueExplicit($colIndex.$rowNum, $rows[$vv['field']], $type) ;
- } else { // 아니요, 기본값은 일반
- $objActSheet->setCellValue($colIndex.$rowNum, $rows[$vv['field']]);
- }
- }
- $rowNum ;
- }
-
- // 행 높이 설정 rownum
- // $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22 );
-
- // 글꼴 및 스타일 설정
- $objActSheet->getDefaultStyle()->getFont()->setSize(12) // 전체 글꼴 크기
- $objActSheet- >getStyle('A1:' . self::_getHeaderIndex(count ($header)) . '1')->getFont()->setBold(true); // 열 헤더를 굵게 표시
-
- // 워크시트 이름 설정
- $objActSheet-> setTitle('Sheet1');
-
- // 헤더 헤더 매개변수 설정
- // header("Pragma: public");
- // header("만료일: 0");
- // header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
- // header(" Content-Type:application/force-download");
- // header("Content-Type:application/vnd.ms-execl");
- // header("Content-Type:application/octet- stream");
- // header("Content-Type :application/download");;
- // header('Content-Disposition:attachment;filename="' . $savedFileName . '"');
- // header("Content-Transfer-Encoding:binary ");
-
- // 최종 출력
- $savedFileName = self::_iconv($filename) //. 파일 이름 확장명 내보내기
-
- header('Content -Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment;filename="' . $savedFileName . '"' );
- header('Cache-Control: max- age=0');
-
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
- $objWriter-> save('php://output');
- // $objWriter->save($savedFileName);
- }
-
- /**
- * 入口檔案:匯入 Excel
- * @return
- */
- public static function import() {
-
- // 引入PHPExcel 類別庫
- // import('php.PHPExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnamePExcel', dirnameP)] (__FILE__) '/', '.php');
-
- }
-
- 私人靜態函數_init() {
-
- }
-
- /**
- * 取得表頭索引值,即:A,B,C...,大於
- * @param array $header 用於設定表頭的陣列
- * @return string
- */
- private function _getHeaderIndex($num) {
- return PHPExcel_Cell::stringFromColumnIndex($num);
- }
-
- /> / private function _iconv($str) {
- return iconv('utf-8', 'gb2312', $str);
- }
- }
-
-
- 複製程式碼
- }
-
複製程式碼
|