ホームページ >バックエンド開発 >PHPチュートリアル >phpexcelエクスポートの色関連の問題
phpexcel エクスポートの色の問題
phpexcel を使用してエクスポートした Excel の色が Web ページ上の色表示と一致しないのはなぜですか?
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><?php require_once './PHPExcel.php'; require_once './Excel5.php'; require_once './get_excel_row.php'; "../include/base.php" が必要です。 "../include/function/006/creatExcelDb.php" が必要です。 定義("COLOR1","#96B7F6"); //查处理データベース===++++++++++++++++++++++++++++++++++++++++++ +++ $q = $db->query("select * from oa_event_sales"); while($a = $db->fetch_array($q)){ $list[] = $a; } $ce = 新しいcreatExcelDb(); $re = $ce->_run($list,'served_time','client_status','oid'); $all_nums=0; $num=配列(); foreach($re as $k=>$v){ $num[$k]=カウント($re[$k]); $all_nums+=count($re[$k]); } $jq = 配列(); $title1 = クライアントステータス; $title2 = fin_confirm; $title3 = オイド; //削除数グループ内の同一の值 foreach($re as $key => $val){ if(true){ foreach($val as $key2 => $val2){ if(!in_array($key2,$jq)){ $jq[] = $key2; } } } } $arr_keys=array(); foreach($re as $k=>$v){ foreach($v as $k2=>$v2){ $arr_keys[]=$k2; } } $c=array_count_values($arr_keys); //++===++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++ // 作成された処理オブジェクトの例 $objExcel = 新しい PHPExcel(); // 创建文件格式書き込みオブジェクト实例、コメントを解除 $objWriter = 新しい PHPExcel_Writer_Excel5($objExcel); //設置文档基本プロパティ/**一般的には使われないようです**/ $objProps = $objExcel->getProperties(); $objProps->setCreator("杨本木"); $objProps->setLastModifiedBy("杨本木"); $objProps->setTitle("杨本木"); $objProps->setSubject("杨本木"); $objProps->setDescription("杨本木"); $objProps->setKeywords("杨本木"); $objProps->setCategory("杨本木"); //************************************** //後続のコンテンツ操作のために現在のシート インデックスを設定します。 //通常、明示的な呼び出しは複数のシートを使用する場合にのみ必要です。 //デフォルトでは、PHPExcel は最初のシートを自動的に作成し、SheetIndex=0 を設定します。 $objExcel->setActiveSheetIndex(0); $objActSheet = $objExcel->getActiveSheet(); // 現在アクティブなシートの名前を設定します $objActSheet->setTitle('現在のシート名'); //幅を設定します。EXCELの幅よりも少し小さい値です。単位はわかりません。 //$objActSheet->getColumnDimension('A')->setWidth(20); //$objActSheet->getRowDimension(1)->setRowHeight(30); //セルの値を設定します $objActSheet->setCellValue('A1', 'タイトル合計表示'); /* //スタイルを設定する $objStyleA1 = $objActSheet->getStyle('A1'); $objStyleA1->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objFontA1 = $objStyleA1->getFont(); $objFontA1->setName('宋体'); $objFontA1->setSize(18); $objFontA1->setBold(true); //列の配置を設定する $objActSheet->getStyle('D')->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);*/ //============最初================================== $ベンム=1; $objActSheet->setCellValue('A1', '行标签列标签'); foreach($jq as $k=>$v){ $objActSheet->setCellValue(get_excel_row($benmu).'1', $v); $ベンム+=1; } $objActSheet->setCellValue(get_excel_row($benmu).'1', '总计'); //設置度 for($i=0;$igetColumnDimension(get_excel_row($i))->setWidth(20); //宽度 $objActSheet->getStyle(get_excel_row($i)."1")->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objActSheet->getStyle(get_excel_row($i))->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //颜色 $objActSheet->getStyle(get_excel_row($i)."1")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row($i)."1")->getFill()->getStartColor()->setARGB(COLOR1); } //==============内容================= $y=2; foreach($re as $k1=>$v1){ //$k1 全部が A2 にあります。。。。後ろの k1 は電話番号、v1 は人》の数字です $objActSheet->setCellValue('A'.$y, $k1); //色 $objActSheet->getStyle('A'.$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle('A'.$y)->getFill()->getStartColor()->setARGB(COLOR1); foreach($jq as $k2=>$v2){ //k2 は 0、v2 は人 foreach($v1 as $k3=>$v3){ //$k3 は人物、$v3 は希望の値 if($k3==$v2){ //$objActSheet->setCellValue(get_excel_row("1"+$k2).$y,$v1[$k3]); $objActSheet->setCellValueExplicit(get_excel_row("1"+$k2).$y,$v1[$k3],PHPExcel_Cell_DataType::TYPE_STRING); } } } $objActSheet->setCellValue(get_excel_row("1"+count($jq)).$y, $num[$k1]); $y+=1; } //=================最後========== $objActSheet->setCellValue("A".$y,"Total"); //色 $objActSheet->getStyle("A".$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle("A".$y)->getFill()->getStartColor()->setARGB(COLOR1); foreach($jq as $k=>$v){ //k は人です $objActSheet->setCellValue(get_excel_row("1"+$k).$y,$c[$v]); //色 $objActSheet->getStyle(get_excel_row("1"+$k).$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row("1"+$k).$y)->getFill()->getStartColor()->setARGB(COLOR1); } $objActSheet->setCellValue(get_excel_row("1"+count($jq)).$y,$all_nums); //色 $objActSheet->getStyle(get_excel_row("1"+count($jq)).$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row("1"+count($jq)).$y)->getFill()->getStartColor()->setARGB(COLOR1); //================================ //出力内容 $outputFileName =time().".xls"; header("プラグマ: public"); header("有効期限: 0"); header("キャッシュ制御:必須再検証、事後チェック = 0、事前チェック = 0"); header("Content-Type:application/force-download"); header("Content-Type:application/octet-stream"); header("Content-Type:アプリケーション/ダウンロード"); header('Content-Disposition:attachment;filename='.$outputFileName.''); header("コンテンツ転送エンコーディング:バイナリ"); $objWriter->save('php://output'); ?> <div class="clear"></div>