gpt4 book ai didi

php - 如何使用 phpexcel 检查 xls 文件是否为可编辑文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:42 24 4
gpt4 key购买 nike

我有这个输入文件 Bootstrap :

enter image description here

这个输入文件只接受 xls 文件,当我发送 xls 文件时,首先我需要在 php 中检查文件是否只被读取并返回一个特定的数字,因为我只需要接受可编辑的文件。

示例我需要什么:

我发送一个xls文件,在php中我检查是否是可编辑文件,如果是可编辑文件,继续下一步,如果不是可编辑文件,返回3。

这是一个只读文件:

enter image description here

我使用 phpexcel,当我发送一个只读文件时,出现下一个错误:

enter image description here

这是我在 php 中的代码:

<?php

require "dao/daoExcel.php";
require "vendor/autoload.php";

class ControllerExcel {

private $aDatosExcel;

public function setDataExcel($dataexcel) {

$estado = true;

if($this->moverArchivo($dataexcel)==false){
$estado = false;
}

if($estado == true && $this->validaHeaders($dataexcel)==false){
$estado = false;
return 2;
}

if($estado == true){
return $this->setInsertExcel($dataexcel);
}

}

public function moverArchivo($dataexcel) {


$fileName = $_FILES["archivo"]["name"];
$fileTmpLoc = $_FILES["archivo"]["tmp_name"];
$aHeader = new DaoExcel();
$excelUrl = $aHeader->getHeaderExel($dataexcel);

$pathAndName = $excelUrl[17]['par_valor'].$fileName;

$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
if ($moveResult == true) {
return true;
}else{
return false;
}

}

public function validaHeaders($dataexcel){

$inputFileType = 'Excel5';
$aHeader = new DaoExcel();
$excelHead = $aHeader->getHeaderExel($dataexcel);
$inputFileName = $excelHead[17]['par_valor'].$_FILES["archivo"]["name"];
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);

$h1 = $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();
$h2 = $objPHPExcel->getActiveSheet()->getCell('B1')->getValue();
$h3 = $objPHPExcel->getActiveSheet()->getCell('C1')->getValue();
$h4 = $objPHPExcel->getActiveSheet()->getCell('D1')->getValue();
$h5 = $objPHPExcel->getActiveSheet()->getCell('E1')->getValue();

$header = $h1."###".$h2."###".$h3."###".$h4."###".$h5;

if($excelHead[16]['par_valor'] == $header){
return true;
}else{
return false;
}

}

public function setInsertExcel($dataexcel){

$inputFileType = 'Excel5';
$aHeader = new DaoExcel();
$excelHead = $aHeader->getHeaderExel($dataexcel);
$inputFileName = $excelHead[17]['par_valor'].$_FILES["archivo"]["name"];
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
$contRows = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();

for($i=2;$i<=$contRows;$i++){
$h1 = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();
$h2 = $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getValue();
$h3 = $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getValue();
$h4 = $objPHPExcel->getActiveSheet()->getCell('D'.$i)->getValue();
$h5 = $objPHPExcel->getActiveSheet()->getCell('E'.$i)->getValue();
$aDatos['ac_no']=$h1;
$aDatos['custom_no']=$h2;
$aDatos['nombre']=$h3;
$aDatos['marc']=$h4;
$aDatos['estado']=$h5;
$aDatos['fecha_registro']=$this->setFecha();
$aDatos['rco_oculto']=0;
$this->aDatosExcel[]=$aDatos;
}
return $aHeader->insertDatosExcel($this->aDatosExcel);
}

private function setFecha(){

date_default_timezone_set("America/Santiago");
$now = time();
putenv("TZ=America/Santiago");
$fecha=date("Y-m-d H:i:s",$now);
$date=date("Y/m/d H:i:s", strtotime($fecha));
return $date;

}

}

?>

所以我看到默认情况下,phpexcel 只接受可编辑的文件,但是我如何自己检查一个 xls 文件是否只被 phpexcel 读取,并返回一条消息?

对不起我的英语。

最佳答案

echo $objPHPExcel->getSecurity()->isSecurityEnabled() ? 'some security is enabled' : 'no security is enabled';

source

关于php - 如何使用 phpexcel 检查 xls 文件是否为可编辑文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33812050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com