(PHPExcel 1.7.8を使用しています)
シートを作成し、数値データのテーブルを入力します。次に、Excelは、3色遷移タイプの条件付き書式を数値データに適用することを拒否します。
つまり、次のことも意味します。
1)「上位10の値」の種類の条件付き書式を使用できます
2)生成されたテーブルのすぐ隣に数値をいくつかのセルに入力すると、遷移的な種類のcondフォーマットを使用できます
3)生成されたテーブルから2つのセルを別の場所に単純なコピー/貼り付けの方法でコピーしても、トランジショナルフォーマットを使用できません
4)「値だけ」を使用して生成されたテーブルから別の場所に2つのセルをコピーする場合-貼り付けは遷移フォーマットを使用できます
ここでのもう1つの重要な観察事項は、生成されたテーブルのセルを選択して値バーをクリックすると、その瞬間にセルの色が条件付き書式に関して本来あるべき色に変わることです。
これは、PHPExcelで生成されたスプレッドシートで観察した別の現象にいくぶん似ています。セルをダブルクリックして編集モードに入ると、セルが真っ暗になることがあります。しかし、それでも値を変更することはできます。
私が推測するExcelファイルでのセルの表現方法に問題があるようです。着色のコントロールに関連する何か...!?
もちろん、すべてをコピー/(値-)貼り付けることもできます。しかし、おそらく私はPHPExcelを間違った方法で使用しているだけですか?または、Excelファイルを便利な方法で一度に変換する簡単な方法はありますか?
私が使用する完全なコードはこれです:
$excelWorkbook = null;
if(file_exists($filename)) {
$reader = PHPExcel_IOFactory::createReader("Excel2007");
$excelWorkbook = $reader->load($filename);
} else {
$excelWorkbook = new PHPExcel();
}
$sheet = $excelWorkbook->getSheetByName($tabName);
if ($sheet !== null) {
$excelWorkbook->removeSheetByIndex($excelWorkbook->getIndex($sheet));
}
$sheet = new PHPExcel_Worksheet($excelWorkbook, $tabName);
$sheet = $excelWorkbook->addSheet($sheet);
$columns = array_keys($targetArray);
$rows = array_keys($targetArray[$columns[0]]);
for($i = 0; $i < count($columns); $i++){
$sheet->setCellValueByColumnAndRow($i+1,1,$columns[$i]);
}
for($i = 0; $i < count($rows); $i++){
$sheet->setCellValueByColumnAndRow(0,$i+2,$rows[$i]);
}
for($i = 0; $i < count($columns); $i++){
for($j = 0; $j < count($rows); $j++) {
$sheet->setCellValueByColumnAndRow($i+1, $j+2, $targetArray[$columns[$i]][$rows[$j]]);
}
}
$excelWorkbook->setActiveSheetIndex($excelWorkbook->getIndex($sheet));
$xlsx = new PHPExcel_Writer_Excel2007($excelWorkbook);
$xlsx->save($filename);