Loops 循环浏览工作表并清理phpexcel中每个工作表中的一列
尝试循环到每个工作表并清除C列中的任何工作表。我收到消息setactive index超出范围,请帮助。我已经添加了我的代码,但我缺少一个步骤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->
<?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";
?>