我正在使用phpExcel,我找不到任何东西来检查是否存在工作表。我想要完成的是这样的事情:
if(!$excel->sheetExists(1)){
$excel->createSheet(1);
$sheet = $excel->setSheet(1);
}
// Do some stuff with the sheet
因此。我的问题:如何检查工作表是否存在?
修改
这会有用吗?
try{
$sheet = $this->excel->setActiveSheetIndex(1);
}catch(Exception $e){
$excel->createSheet(1);
$sheet = $excel->setActiveSheetIndex(1);
}
答案 0 :(得分:29)
如果您只是想知道索引为1的sheetexists,那么
$sheetCount = $excel->getSheetCount();
将返回工作表的计数。由于工作表从0开始逐步编制索引,因此如果计数为2或更多,则索引1处的工作表将仅存在。
如果您想知道命名表是否存在,那么
$sheetNames = $excel->getSheetNames();
将返回一个工作表名称数组(按其索引位置编制索引),然后您可以使用in_array()进行测试;
在
$excel->getSheet()
如果请求的表(通过索引)不存在,方法将抛出异常,因此将其包装在try / catch块中将是另一种方法
$excel->getSheetByName()
如果指定的工作表不存在,返回NULL值
答案 1 :(得分:3)
您可以使用方法sheetNameExists($pSheetName)按名称检查工作表是否存在。
答案 2 :(得分:1)
getSheet($sheetNumber)
是您检查工作表是否存在的方式。
答案 3 :(得分:0)
是的,您的代码也可以使用:
try {
$objWorksheet = $objPHPExcel->setActiveSheetIndex(1);
}
catch (Exception $e) {
echo 'Sheet is not exists!';
}
答案 4 :(得分:0)
$sheet=$excel->getSheet(1);
// or you can get sheet by name $sheet=$excel->getSheetByName("Sheet1");
if(!empty($sheet)&&is_object($sheet)){
//sheet already exist
}else{
//sheet does not exist. Write your code here!
}
答案 5 :(得分:0)
“知道当前的活动表编号(索引)” $ this-> activeSheet-> getActiveSheetIndex()
注意: $ loadExcel = PHPExcel_IOFactory :: load(“ excelSheetName.xlsx”); $ this-> activeSheet = $ loadExcel;