phpexcel でエクスポートされた色に関するいくつかの問題について、phpexcel を使用してエクスポートされた Excel の色が Web ページに表示される色と一致しないのはなぜですか?何が起こっているのか知りたいですか?どうやって解決すればいいのでしょうか? PHP コードの詳細は次のとおりです:
PHP コード:
コードをコピー コードは次のとおりです:
require_once './PHPExcel.php';
require_once './Excel5.php';
require_once './get_excel_row.php';
「../include/base.php」が必要;
「../include/function/006/creatExcelDb.php」が必要;
define("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]=count($re[$k]);
$all_nums+=count($re[$k]);
}
$jq = array();
$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 = new PHPExcel();
// 创建文件格式書入对オブジェクト实例、コメント解除
$objWriter = new PHPExcel_Writer_Excel5($objExcel);
//設定文档基本プロパティ/**一般的には使われないようです**/
$objProps = $objExcel->getProperties();
$objProps->setCreator("杨本木");
$objProps->setLastModifiedBy("杨本木");
$objProps->setTitle("杨本木");
$objProps->setSubject("杨本木");
$objProps->setDescription("杨本木");
$objProps->setKeywords("杨本木");
$objProps->setCategory("杨本木");
//****************************************
//後続のコンテンツ操作のために現在のシート インデックスを設定します。
//通常、表示呼び出しは複数のシートを使用する場合にのみ必要です。
//デフォルトでは、PHPExcel は SheetIndex=0 で最初のシートを自動的に作成します set
$objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet();
//現在の名前を設定しますアクティブシートの
$objActSheet->setTitle('currentsheetname');
//EXCELの幅とは少し違う値です。 EXCEL の幅
//$objActSheet- >getColumnDimension('A')->setWidth(20);
//$objActSheet->getRowDimension(1)->setRowHeight(30); //Height
/ /セルの値を設定
$objActSheet ->setCellValue('A1', 'タイトル合計表示');
/*
//スタイルを設定
$objStyleA1 = $objActSheet->getStyle('A1'); $ objstylea1-> gt; sethorizontal(phpexcel_style_alignment :: horizontal_centa1 = $ objstylea1-> >setSize(18);
$ob jFontA1 ->setBold(true);
//列の中央揃えを設定します
$objActSheet->getStyle('D')->getAlignment()->set水平(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;$i$objActSheet->getColumnDimension(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);
//Color
$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;
}
//=================last == ========
$objActSheet->setCellValue("A".$y,"Total");
//Color
$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]);
/ /Color
$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);
//Color
$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("Pragma: public");
header("Cache-Control:must-revalidate、post-check=0、pre-check=0"); ;
header ("Content-Type:application/force-download");
header("Content-Type:application/download"); header('Content-Disposition:attachment;filename='.$outputFileName.'');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output') ;
?>
上記のコードでは、エクスポートされた Excel では色が正しく表示されません。理由は何ですか?なぜでしょうか?
まず、次のように赤色を定義して、何が表示されるかを確認します。ページに表示されている色ではないので、とてもわかりにくいです。 。 。 。 。
このコードを見てください: $objActSheet->getStyle('A'.$y)->getFill()->getStartColor()->setARGB(COLOR1);
おそらく ARGB が原因だと思います。色の前に 2 つの 00 を追加するだけですが、これが機能するかどうかはわかりません。最初に効果を試してみましょう。この問題は次のようになります。まず、a は透明度なので、後でテストしてみましたが、それが実際に透明度を高めた 4 ビットの色修正であることがわかりました。
http://www.bkjia.com/PHPjc/326231.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/326231.html技術記事 phpexcel でエクスポートされた色に関するいくつかの問題について、phpexcel を使用してエクスポートされた Excel の色が Web ページに表示される色と一致しないのはなぜですか?何が起こっているのか知りたいですか?解決方法...