>  Q&A  >  본문

phpExcel은 오프라인 wamp 환경에서 정상적으로 내보냅니다. 온라인 Linux로 내보낸 동일한 코드를 .xls로 수정하면 깨질 수 있습니다.

멤버십 테이블을 브라우저로 내보내기 위해 phpExcel을 사용했습니다. 오프라인 테스트는 정상이었고 코딩 오류도 없었습니다.

1 테이블은 정상적으로 오프라인으로 내보냈습니다. 온라인으로 내보낸 문제

TIM图片20171110094544.png3, 접미사를 수정한 후 잘못된 문자가 표시됩니다

TIM图片20171110094125.png

코드가 이제 게시되었습니다.

case 'test':TIM图片20171110094209.png

$data1 = MySql::fetchAll("SELECT real_name,telephone ,car_id,regtime,endtime,sale, re_tel,type FROM `pw_member` 여기서 유형=1");

$data2 = MySql::fetchAll("SELECT real_name,telephone,car_id,regtime,endtime,sale,re_tel,type FROM `pw_member` 여기서 유형=2" );

$data3 = MySql::fetchAll("SELECT real_name,telephone,car_id,regtime,endtime,sale,re_tel,type FROM `pw_member` 여기서 유형=3");

//3가지 유형의 멤버

foreach($data1 as $key=>&$val){

if($val['type']==1){

$val[' type']='일반 회원';

}

if($val['regtime']>58001){

$val['regtime']=date('Y-m-d',$val[' regtime']);

}

if($val['endtime']>58001){

$val['endtime']=date('Y-m-d',$val['endtime']) ;

}

}

foreach($data2 as $key=>&$val){

if($val['type']==2){

$val[' type']='VIP 회원';

}

if($val['regtime']>58001){

$val['regtime']=date('Y-m-d',$val[' regtime']);

}

if($val['endtime']>58001){

$val['endtime']=date('Y-m-d',$val['endtime']) ;

}

}

foreach($data3 as $key=>&$val){

if($val['type']==3){

$val[' type']='골드 회원' ;

}

if($val['regtime']>58001){

$val['regtime']=date('Y-m-d',$val[' regtime']);

}

if($val['endtime']>58001){

$val['endtime']=date('Y-m-d',$val['endtime']) ;

}

}

// Cxt::dump($data1)

$a=array(

0=>'실명',

1=>'전화번호',

2=>'번호판 번호',

3=>'등록 날짜',

4=>'만료 시간',

5=>'추천자',

6=>' 추천인 전화번호',

7=>'멤버 유형',

);

array_unshift($data1,$a); //헤더 추가

array_unshift($data2,$a) //헤더 추가

array_unshift( $data3 ,$a); //헤더 추가

$data[1]=$data1;

$data[2]=$data2;

$data[3]=$data3;

require(' ./include /PHPExcel/PHPExcel.php');

// dirname 필요(__FILE__).'/PHPExcel/PHPExcel.php';

$objPHPExcel = new PHPExcel();//phpexcel 클래스 인스턴스화

/ / Cxt: :dump($objPHPExcel);

for($i=1;$i<=3;$i++){

if($i>1){

$objPHPExcel->createSheet(); 새로운 내장 시트

$objPHPExcel->setActiveSheetIndex($i-1);//새로 생성된 시트를 현재 활성 시트로 설정

}

$objSheet=$objPHPExcel->getActiveSheet( ); //현재 활성 시트 가져오기

$objSheet->setTitle($i.'Member');

$objSheet->fromArray($data[$i]);

}

$ objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');

$name=date('Y-m-d',time()).time();

$name='member'.$name.' xlsx';

// $objWriter->save($name);//서버에 저장

// header('Content-Type: application/vnd.ms-excel');//브라우저에 알리기 2003 파일이 출력됩니다

header('Content-Type: application/vnd.ms-excel; charset=UTF-8');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ' );

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');

header('Content-Disposition: attachment;filename='."$name " );//브라우저에게 출력 파일의 이름을 알려주세요

header('Cache-Control: max-age=0');

$objWriter->save("php://output");

break;

혹시 이런 문제가 발생하시면 조언 부탁드립니다...


薛定谔的猫薛定谔的猫2558일 전1483

모든 응답(0)나는 대답할 것이다

답장 없음
  • 취소회신하다