3

Excel シートのドロップダウン内にあるオプションのリストを読みたいです。

例: - オプションとして Not Attempted を持つ cell(86,G) がありますが、これはドロップダウン リストです。したがって、ユーザーが何を選択しても、ドロップダウンから最後のオプションを読みたいと思います。

ここに画像の説明を入力

これを達成する方法は?

ありがとう

4

2 に答える 2

1

以下の手順に従って、PHPExcel のドロップダウンを読み取ります

ステップ 1: ドロップダウン データを別のシートに保存する

ステップ 2: 別のシートにドロップダウンを作成する

以下のコードを参照してください。

$newSheet=$objPHPExcel->createSheet();            
$objPHPExcel->setActiveSheetIndex(1);
$newSheet->setTitle("CountriesList");

$objPHPExcel->setActiveSheetIndex(1)
->SetCellValue("A1", "UK")
->SetCellValue("A2", "USA")
->SetCellValue("A3", "CANADA")
->SetCellValue("A4", "INDIA")
->SetCellValue("A5", "POLAND")
->SetCellValue("A6", "ENGLAND");// Drop down data in sheet 1

$objPHPExcel->addNamedRange( 
new PHPExcel_NamedRange(
'countries', 
$objPHPExcel->setActiveSheetIndex(1), 
'A1:A6'
) 
);
$objPHPExcel->setActiveSheetIndex(0)->SetCellValue("A1", "UK");

$objPHPExcel->setActiveSheetIndex(0);// Drop down in sheet 0
$objValidation = $objPHPExcel->getSheet(0)->getCell('A1')->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
$objValidation->setAllowBlank(false);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle('Input error');
$objValidation->setError('Value is not in list.');
$objValidation->setFormula1("=countries");

これらの手順は、xls を作成する際に従う必要があります。

ドロップダウンを読むときは、ドロップダウンの代わりに 2 番目のシートに保存されているデータを使用します。

于 2015-09-07T12:43:12.417 に答える
1
    $bankAccounts = "bankAccounts, bankAccounts2";
    $products = "product1, product2";         

     \Excel::create('file', function ($excel) use ($bankAccounts, $products) {
        $excel->sheet('Sale Forecasting', function ($sheet) use ($bankAccounts, $products) {
            $sheet->SetCellValue('A1', 'name');
            $sheet->SetCellValue('A2', 'testing');
            $sheet->SetCellValue('B1', 'valid_from');
            $sheet->SetCellValue('B2', '2020-01');
            $sheet->SetCellValue('C1', 'valid_till');
            $sheet->SetCellValue('C2', '2020-02');
            $sheet->SetCellValue('D1', 'amount');
            $sheet->SetCellValue('D2', '1000');
            $sheet->SetCellValue('E1', 'bank_account');
            $sheet->SetCellValue('F1', 'product');
            $sheet->SetCellValue('G1', 'description');
            $sheet->SetCellValue('G2', 'Lorem ipsum');
            $col_count = 1000;
            for ($i = 2; $i <= $col_count; $i++) {
                $objValidation = $sheet->getCell('E'.$i)->getDataValidation();
                $objValidation->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST);
                $objValidation->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_INFORMATION);
                $objValidation->setAllowBlank(false);
                $objValidation->setShowInputMessage(true);
                $objValidation->setShowErrorMessage(true);
                $objValidation->setShowDropDown(true);
                $objValidation->setErrorTitle('Input error');
                $objValidation->setError('Value is not in list.');
                $objValidation->setPromptTitle('Pick from list');
                $objValidation->setPrompt('Please pick a value from the drop-down list.');
                $objValidation->setFormula1('"'.$bankAccounts.'"');
            }

            $col_count = 1000;
            for ($i = 2; $i <= $col_count; $i++) {
                $objValidation = $sheet->getCell('F'.$i)->getDataValidation();
                $objValidation->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST);
                $objValidation->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_INFORMATION);
                $objValidation->setAllowBlank(false);
                $objValidation->setShowInputMessage(true);
                $objValidation->setShowErrorMessage(true);
                $objValidation->setShowDropDown(true);
                $objValidation->setErrorTitle('Input error');
                $objValidation->setError('Value is not in list.');
                $objValidation->setPromptTitle('Pick from list');
                $objValidation->setPrompt('Please pick a value from the drop-down list.');
                $objValidation->setFormula1('"'.$products.'"');
            }
        });
    })->download('xlsx');
于 2020-03-06T11:31:01.143 に答える