0

みなさん、こんにちは:D PHPExcel の背後にある式 (Excel ドキュメント内) を保護するにはどうすればよいですか?

HTMLフォームを使用してユーザー入力値をPOSTし、PHPにExcelドキュメントから式を取得させ、そのユーザー入力値で計算してから、計算の答えをユーザーに返します。数式は HTML や PHP スクリプトではなく、すべて Excel ドキュメント内にあります。

Excel ドキュメントの数式を保護するにはどうすればよいですか? ftp の Excel ドキュメントのファイル許可を 400 に設定しました (グループとパブリックの読み取り、書き込み、実行許可なし、所有者は読み取り許可のみ) ため、一般ユーザーはそれらをダウンロードできません。しかし、この保護は十分でしょうか? これらの Excel ドキュメント内の数式を読み取る他の方法はありますか?

疑問に思っている方のために説明すると、この Excel ドキュメント内の数式は次のとおりです=IF(A1>0,"Greater than Zero",IF(A1<0,"Less than Zero","Equals Zero"))。この数式は私が保護したいものです。これは誰にも見られたくないものです。もちろん、サーバーにアクセスできる人は例外です。

HTML フォーム スクリプト

<form action="./FirstInteraction.php" method="post">
Input A1: <input type="number" name="A1">
<input type="submit">
</form>

PHP スクリプト: FirstInteraction.php

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/');

/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';

/** Load Excel File **/
$inputFileName = './TrueFalse.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);

/** Change A1 Value **/
$objPHPExcel->getActiveSheet()->setCellValue('A1',$_REQUEST["A1"]);

/** Calculate and State B1 Value **/
echo "<br> It is ".$objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue();
4

2 に答える 2

1

守るとはどういう意味ですか?そのセルが編集されないようにする場合は、次のようにします。

$objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(
    PHPExcel_Style_Protection::PROTECTION_PROTECTED
);
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
于 2013-04-15T09:51:21.387 に答える