> 백엔드 개발 > PHP 튜토리얼 > PHPExcel 데이터 내보내기 예

PHPExcel 데이터 내보내기 예

WBOY
풀어 주다: 2016-07-25 08:42:35
원래의
1122명이 탐색했습니다.

1. getdata.php

  1. 네임스페이스 WebadminModel;
  2. ExtendSpaceExcel 사용;
  3. 약간
  4. … …
  5. // 데이터 가져오기
  6. $dataBillArr = $this->get_list_bysql($sql);
  7. // 데이터의 0과 1을 yes와 no로 바꿉니다
  8. // PHPExcel에는 처리를 위한 내장 메서드가 있지만 결과는 TRUE/FALSE입니다. 여기서 직접 처리하세요
  9. $this->_formatZero($dataBillArr, array('taxflag', 'payflag', 'removeflag' )) ;
  10. // 결제 상태 교체
  11. foreach ($dataBillArr as $key => $value) {
  12. switch ($value['statustype']) {
  13. case '- 1 ':
  14. $dataBillArr[$key]['statustype'] = '취소됨';
  15. 중단;
  16. 케이스 '-2':
  17. $dataBillArr[$key]['statustype'] = '취소 및 환불됨';
  18. 중단;
  19. 사례 '0':
  20. $dataBillArr[$key]['statustype'] = '결제 보류 중';
  21. 중단;
  22. 사례 ' 1':
  23. $dataBillArr[$key]['statustype'] = '배송 예정';
  24. 중단;
  25. 케이스 '2':
  26. $dataBillArr[$key][' statustype' ] = '수신 예정';
  27. break;
  28. case '3':
  29. $dataBillArr[$key]['statustype'] = '완료됨';
  30. break;
  31. case ' 10':
  32. $dataBillArr[$key]['statustype'] = '반환 완료';
  33. 중단;
  34. 케이스 '11':
  35. $dataBillArr[$key][' statustype'] = '환불 완료';
  36. 중단;
  37. 기본값:
  38. $dataBillArr[$key]['statustype'] = '없음';
  39. 중단;
  40. }
  41. }
  42. // 내보낼 필드와 해당 헤더 이름을 설정합니다.
  43. $header = array(
  44. array('title'=>'플랫폼 주문 번호', 'field'= >'billcode ', 'type'=>'string', 'autosize'=>true),
  45. array('title'=>'사용자 계정', 'field'=>'username' , 'type' =>'string', 'autosize'=>true),
  46. array('title'=>'사용자 닉네임', 'field'=>'nickname'),
  47. array('제목 '=>'사업자', 'field'=>'shopuser', 'autosize'=>true),
  48. array('title'=>'Guanyi ERP 주문 번호' , 'field'= >'erpsn', 'type'=>'string', 'autosize'=>true),
  49. array('title'=>'결제 번호', 'field' =>'bspaycode ', 'type'=>'string', 'autosize'=>true),
  50. array('title'=>'본딩 배치 번호', 'field'=> 'bsbatchcode', 'type '=>'string', 'autosize'=>true),
  51. array('title'=>'국경을 넘는지', 'field'=>'taxflag') ,
  52. array('title'=>'주문 상태', 'field'=>'statustype'),
  53. ……
  54. 생략
  55. ……
  56. );
  57. / / Excel 생성 및 내보내기 작업을 수행하기 위한 인터페이스 호출
  58. $filename = 'Order flow sheet_' .date('Y year m Month d day_His', time())
  59. Excel: :export($dataBillArr, $header, $filename);
코드 복사


두、Excel.class.php

  1. 네임스페이스 ExtendSpace;
  2. /**
  3. * 클래스 Excel 일반 Excel 인터페이스, 내보내기 및 내보내기 작업 처리
  4. * 사용 지침:
  5. * 1. 가져오기
  6. * 계속됩니다. . .
  7. * 2. 내보내기
  8. * ExtendSpaceExcel 사용;
  9. * .....
  10. * Excel::export($dataArr, $header, $filename);
  11. *
  12. * @package ExtendSpace
  13. * @author xxxxx 2015-08-27 14:07:14
  14. * @version
  15. */
  16. class Excel {
  17. // private static $objPHPExcel = null;
  18. /**
  19. * 항목 파일: Excel 내보내기
  20. * @return
  21. */
  22. public static function import($data, $header, $filename='hms_excel_export') {
  23. // PHPExcel 클래스 라이브러리 소개
  24. import('phpexcel.PHPExcel', dirname(__FILE__) . '/', '.php') // 이는 TP에 고유하며 include 또는 require를 직접 사용할 수 있습니다.
  25. // 초기화 settings
  26. $objPHPExcel = new PHPExcel();
  27. $objPHPExcel->getProperties()->setCreator('test')->setLastModifiedBy('test') // 여기에 중국어 왜곡 문자가 설정됩니다. , 아직 해결되지 않았습니다.
  28. // ->setTitle('제목이 바로 이겁니다')
  29. // ->setSubject('이것이 무엇입니까')
  30. // ->setDescription( '설명입니다')
  31. // ->setKeywords('키워드입니다')
  32. // ->setCategory('디렉토리입니다');
  33. // var_dump($ objPHPExcel->getProperties()); 종료;
  34. // 작업할 현재 활성 워크시트 가져오기
  35. $objActSheet = $objPHPExcel->getActiveSheet();
  36. / / 헤더 쓰기
  37. foreach ( $header as $k => $v) {
  38. $colIndex = self::_getHeaderIndex($k);
  39. $objPHPExcel->setActiveSheetIndex(0)-> ;setCellValue($colIndex . '1' , $v['title']);
  40. // 열이 너비에 자동으로 적응해야 하는지 여부
  41. if (!empty($v['autosize) '])) {
  42. $objActSheet-> getColumnDimension($colIndex)->setAutoSize(true);
  43. }
  44. }
  45. // 두 번째 줄부터 데이터 쓰기 , 첫 번째 줄은 헤더입니다.
  46. $rowNum = 2;
  47. foreach($data as $rows){ // 데이터를 탐색하여 행을 가져옵니다
  48. foreach($header as $kk => $ vv){ // 셀에 쓰기
  49. $colIndex = self::_getHeaderIndex($kk);
  50. // 셀 데이터 형식 지정 여부
  51. if (!empty($vv[ 'type'])) { // 예
  52. switch ( $vv['type']) {
  53. case 'number':
  54. $type = PHPExcel_Cell_DataType::TYPE_NUMERIC // Number
  55. break; ;
  56. case 'boolean':
  57. $type = PHPExcel_Cell_DataType::TYPE_BOOL; // 부울 값, 0->FALSE; 1->TRUE
  58. break;
  59. 기본값:
  60. $ type = PHPExcel_Cell_DataType::TYPE_STRING; // 문자열
  61. break ;
  62. }
  63. $objActSheet->setCellValueExplicit($colIndex.$rowNum, $rows[$vv['field']], $type) ;
  64. } else { // 아니요, 기본값은 일반
  65. $objActSheet->setCellValue($colIndex.$rowNum, $rows[$vv['field']]);
  66. }
  67. }
  68. $rowNum ;
  69. }
  70. // 행 높이 설정 rownum
  71. // $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22 );
  72. // 글꼴 및 스타일 설정
  73. $objActSheet->getDefaultStyle()->getFont()->setSize(12) // 전체 글꼴 크기
  74. $objActSheet- >getStyle('A1:' . self::_getHeaderIndex(count ($header)) . '1')->getFont()->setBold(true); // 열 헤더를 굵게 표시
  75. // 워크시트 이름 설정
  76. $objActSheet-> setTitle('Sheet1');
  77. // 헤더 헤더 매개변수 설정
  78. // header("Pragma: public");
  79. // header("만료일: 0");
  80. // header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  81. // header(" Content-Type:application/force-download");
  82. // header("Content-Type:application/vnd.ms-execl");
  83. // header("Content-Type:application/octet- stream");
  84. // header("Content-Type :application/download");;
  85. // header('Content-Disposition:attachment;filename="' . $savedFileName . '"');
  86. // header("Content-Transfer-Encoding:binary ");
  87. // 최종 출력
  88. $savedFileName = self::_iconv($filename) //. 파일 이름 확장명 내보내기
  89. header('Content -Type: application/vnd.ms-excel');
  90. header('Content-Disposition: attachment;filename="' . $savedFileName . '"' );
  91. header('Cache-Control: max- age=0');
  92. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  93. $objWriter-> save('php://output');
  94. // $objWriter->save($savedFileName);
  95. }
  96. /**
  97. * 入口檔案:匯入 Excel
  98. * @return
  99. */
  100. public static function import() {
  101. // 引入PHPExcel 類別庫
  102. // 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');
  103. }
  104. 私人靜態函數_init() {
  105. }
  106. /**
  107. * 取得表頭索引值,即:A,B,C...,大於
  108. * @param array $header 用於設定表頭的陣列
  109. * @return string
  110. */
  111. private function _getHeaderIndex($num) {
  112. return PHPExcel_Cell::stringFromColumnIndex($num);
  113. }
  114. /> / private function _iconv($str) {
  115. return iconv('utf-8', 'gb2312', $str);
  116. }
  117. }
  118. 複製程式碼
  119. }
複製程式碼



PHPExcel

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿