Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 循环浏览工作表并清理phpexcel中每个工作表中的一列_Loops_While Loop_Phpexcel - Fatal编程技术网

Loops 循环浏览工作表并清理phpexcel中每个工作表中的一列

Loops 循环浏览工作表并清理phpexcel中每个工作表中的一列,loops,while-loop,phpexcel,Loops,While Loop,Phpexcel,尝试循环到每个工作表并清除C列中的任何工作表。我收到消息setactive index超出范围,请帮助。我已经添加了我的代码,但我缺少一个步骤 <?php include'../Classes/PHPExcel.php'; include'../Classes/PHPExcel/IOFactory.php'; $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->

尝试循环到每个工作表并清除C列中的任何工作表。我收到消息setactive index超出范围,请帮助。我已经添加了我的代码,但我缺少一个步骤

<?php
include'../Classes/PHPExcel.php';
include'../Classes/PHPExcel/IOFactory.php';

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load("../upload/combined.xlsx");
ini_set('max_execution_time', 2000);
$i = 0;
while ($objPHPExcel->setActiveSheetIndex($i)){

    $objWorksheet = $objPHPExcel->getActiveSheet();
    $highestRow = $objWorksheet->getHighestRow();

    for($cl=0;$cl<$highestRow+1;$cl++){
        $clean=$objPHPExcel->getActiveSheet()->getCell('C'.$cl)->getValue();
        $cleandone=str_replace(',',"",$clean);
        $objWorksheet->setCellValue('C'.$cl,$cleandone);
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('../upload/combined.xlsx');
        $i++;
    }
}
echo "Done";
?>

不要在每次单元格更改后保存工作簿

不要尝试访问第0行,它不存在。。。行从1开始

不要在每个单元格后增加工作表计数器,但只能在每个工作表之后。。。事实上,为什么不简单地检索工作表计数并在foreach上循环,而不是等待while在停止之前试图访问不存在的工作表时出现的错误:

<?php
include'../Classes/PHPExcel.php';
include'../Classes/PHPExcel/IOFactory.php';

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load("../upload/combined.xlsx");
ini_set('max_execution_time', 2000);

$worksheetCount = $objPHPExcel->getSheetCount();
for($i=0; $i < $worksheetCount; $i++) {
    $objPHPExcel->setActiveSheetIndex($i);
    $objWorksheet = $objPHPExcel->getActiveSheet();
    $highestRow = $objWorksheet->getHighestRow();

    for($cl=1; $cl<=$highestRow; $cl++) {
        $clean=$objWorksheet->getCell('C'.$cl)->getValue();
        $cleandone=str_replace(',',"",$clean);
        $objWorksheet->setCellValue('C'.$cl,$cleandone);
    }
}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('../upload/combined.xlsx');

echo "Done";
?>