2

最大1000行と特定の列数のExcelシートをユーザーが表示できるようにする方法を見つけたいと思います。このリンクは、私が必要としているもの(およびその理由)の同様の例を示しています。

データ検証リスト(セルごとに1つ)を持つ1000行のテンプレートを開発しましたが、設定した1000のデータ検証リストを終了した後、ユーザーが手動でデータを入力しようとしないようにします。このように、PHPExcelが編集可能な(または表示可能な)行と列の範囲を設定できれば素晴らしいと思います。ドキュメントを検索しようとしましたが、何かが見つかりませんでした(おそらく私は悪い調査をしました)

4

1 に答える 1

1

行/列の可視性の制限をまだ設定することはできないため、私の解決策は次のとおりです。

最初にシートに保護を設定し、次にユーザーが編集できるようにするセルの保護を削除します。

    $latestTemplateColumn = $objPHPExcel->getActiveSheet()->getHighestDataColumn();
    $latestTemplateColumn++;
    $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
    $column = 'A';
    for ($row = 3; $row <= $maxRows; $row++) {
        for ($column = 'A'; $column != $latestTemplateColumn; $column++) {
            $cell = $objPHPExcel->getActiveSheet()->getCell($column.$row);
            $objPHPExcel->getActiveSheet()->getStyle($column.$row)->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
        }
    }

このコードは、$ maxRowを設定するまで、またデータを含む最後の列まで、行3から始まります。このようにして、ユーザーは私が設定した範囲のデータのみを入力できます。

于 2012-08-23T13:53:28.653 に答える