ホームページ  >  に質問  >  本文

phpExcel はオフラインの wamp 環境では正常にエクスポートされますが、オンラインの Linux にエクスポートした同じコードを開くことができず、ファイルの拡張子を .xls に変更すると文字化けしてしまいます。

phpExcel を使用してメンバーシップ テーブルをブラウザにエクスポートしました。オフライン テストは正常で、コーディング エラーなしでエクスポートできました。

1. テーブルはオフラインで通常どおりエクスポートされます

TIM图片20171110094544.png

2. 問題のあるフォームをオンラインでエクスポートします。TIM图片20171110094125.png

3、サフィックスを変更すると文字化けが発生します。

TIM图片20171110094209.png

今すぐコードを貼り付けます。

case 'test':

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

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

$data3 = MySql::fetchAll("SELECT real_name,telephone,car_id,regtime,endtime,sale,re_tel,type FROM `pw_member` where type=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');

/ / require 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-タイプ: 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;

遭遇しましたこの問題について弟に指導をしたいと思います。感謝の意を表したいと思います...



# ##############################

薛定谔的猫薛定谔的猫2508日前1434

全員に返信(0)返信します

応答なし
  • キャンセル返事