gpt4 book ai didi

Phpexcel 删除一列或多列

转载 作者:行者123 更新时间:2023-12-03 23:31:04 25 4
gpt4 key购买 nike

我想一次删除一列而不删除列的右侧。我已经浏览了第一行,如果它是空白的,我只想删除该列。但是该功能只允许我删除该列及其旁边的一列。y 场景 Column (M有值) (N没有值) (O没有值) (P有值) (Q有值)

$toremove_arr=array();
for ($ga='A'; $ga !== $highestCol; $ga++){
$col=$objPHPExcel->getActiveSheet()->getCell($ga.'1')->getValue();
if ($col=='') {
$toremove_arr[]=$ga;
}
}
$toremove_num = count($toremove_arr);
for($i=0; $i < $toremove_num; $i++){
$objPHPExcel->getActiveSheet()->removeColumn($toremove_arr[$i], 1);
}

最佳答案

当您删除一列时,例如 A 列,PHPExcel 不会简单地清空 A 列中的所有单元格,而是打乱所有其他列以填充空白...因此 B 列成为新的 A 列, C 列成为新的 B 列,等等。这模拟了 MS Excel 的行为。

如果要删除的列数组包含 A 和 B:首先删除列 A。以前的 B 列现在变成 A 列,以前的 C 列变成 B 列,以前的 D 列变成新的 C 列。然后你删除 B 列......但是你实际的数据是以前在列中的数据C...不是您计划删除的列...您真正打算从现在是列 A 的列中删除数据。

要解决此问题,您需要以相反的顺序删除您的列;所以您要先删除 B 列,然后再删除 A 列。

array_reverse($toremove_arr);
$toremove_num = count($toremove_arr);
for($i=0; $i < $toremove_num; $i++){
$objPHPExcel->getActiveSheet()->removeColumn($toremove_arr[$i], 1);
}

关于Phpexcel 删除一列或多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841792/

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