1

(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);
4

2 に答える 2

1

回避策タイプの解決策は、それぞれのシートのすべてのセルを選択し、背景色「なし」を選択することです。

どうやらセルは白く着色されており、この着色は条件付き着色に重なっています。

于 2012-11-16T12:44:50.273 に答える
0

これは、セルの塗りつぶしの場合、Excelが前景色と背景色の意味を反転させるが、条件付き(dxf)形式では反転しないため、バグである可能性があります。

または、別の言い方をすれば、背景と前景はセル形式と条件付き形式で異なる方法で保存されます。

この問題は、Perl Excel :: Writer::XLSXモジュールで発生しました。

于 2012-11-16T14:14:27.203 に答える