gpt4 book ai didi

php - 关于 getHighestRow() 的数据不准确

转载 作者:行者123 更新时间:2023-12-03 21:34:54 25 4
gpt4 key购买 nike

我正在尝试获取包含 excel 工作簿中数据的最后一行问题是在某些工作表中我得到了正确的数据,但在其他工作表中我没有,我尝试使用 getHighestDataRow() 更改我的代码而不是 getHighestRow()但我一直得到相同的结果,所以我将我的 PHPExcel 库从 PHPExcel_1.7.9_doc 更新为 PHPExcel_1.8.0_doc 但结果也相同。
有任何想法吗 ?

我正在考虑在循环中创建一个 if 语句来测试每一行是否为空。

     $lastRowt = $excel2->getActiveSheet()->getHighestDataRow();
echo" $lastRowt ";
$lastRowt继续获得 34 但它只有 30 。
    <html>
<?php

ini_set('max_execution_time', 300);
ini_set("memory_limit",-1);

require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel/IOFactory.php';
require_once 'include/adb.php';

$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('try.xlsx');


$sheetCount = $excel2->getSheetCount();
for ($x=0; $x<$sheetCount; $x++) {
echo"now $x <br>";

$excel2->setActiveSheetIndex($x);

$objWorksheet = $excel2->getActiveSheet();

$po = $objWorksheet->getCellByColumnAndRow(1, 7)->getValue();
$in = $objWorksheet->getCellByColumnAndRow(6, 7)->getValue();

$id = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($objWorksheet->getCellByColumnAndRow(6, 8)->getValue()));


$esv = $objWorksheet->getCellByColumnAndRow(4, 19)->getValue();
$won = $objWorksheet->getCellByColumnAndRow(0, 21)->getValue();
$DTH = $objWorksheet->getCellByColumnAndRow(1, 21)->getValue();
$wn = $objWorksheet->getCellByColumnAndRow(3, 21)->getValue();
$rco = $objWorksheet->getCellByColumnAndRow(4, 21)->getValue();
$wc = $objWorksheet->getCellByColumnAndRow(5, 21)->getValue();
$rch = $objWorksheet->getCellByColumnAndRow(6, 21)->getValue();
$wd = $objWorksheet->getCellByColumnAndRow(0, 22)->getValue();
$cs = 1 ;



$query="INSERT INTO invoice
(saponum, invoicenum, invoicedate, esvnum,workordernum, dth, wellnum, regcode, wellcharge, rigcharge, workdescription, idc)VALUES
( '$po', '$in', '$id', '$esv', '$won','$DTH', '$wn', '$rco', '$wc', '$rch', '$wd', '$cs' )";
echo" query <br> $query <br>";
mysql_query($query);


$queryi="select idv from invoice where invoicenum = $in ";
echo" query <br> $in <br>haya de el qwery bta3et el idv $queryi ";
$idnt = mysql_query($queryi);

$outputidernt=mysql_fetch_array($idnt);
extract($outputidernt);

$lastRowt = $excel2->getActiveSheet()->getHighestDataRow();
echo"<br> $lastRowt <br>";
$rn = 25 ;
for($i=$lastRowt ; $i>=28 ; $i--){

$qty = $objWorksheet->getCellByColumnAndRow(0, $rn)->getValue();
echo "qty = $qty";
$item = $objWorksheet->getCellByColumnAndRow(1, $rn)->getValue();
echo "item = $item";
$describtion = $objWorksheet->getCellByColumnAndRow(2, $rn)->getValue();
echo "describtion = $describtion";
$unit = $objWorksheet->getCellByColumnAndRow(4, $rn)->getValue();
echo "unit = $unit";
$pric = $objWorksheet->getCellByColumnAndRow(5, $rn)->getValue();
echo "pric = $pric";
$rn++ ;



$queryit=" SELECT ids FROM pricelist WHERE itemnum = '$item' AND saponum = '$po' ";
echo" queryit <br> $queryit <br>";
$idniter = mysql_query($queryit);

$outputider=mysql_fetch_array($idniter);
extract($outputider);


$querys="INSERT INTO invoicestep ( ids , quantity , idv) VALUES ( '$ids','$qty','$idv' )";
echo" querys <br> $querys <br>";
mysql_query($querys);

}

}






?>
</html>

最佳答案

我在获得最高列之前遇到过这个问题,这是由于单元格中的格式和公式。即使单元格不显示值,也不意味着单元格为空。 PHPExcel 将读取看似空的单元格,但实际上其中包含一些格式或公式。

如果您是这种情况,您可以清除内容下方的所有格式/公式。如果文件是在其他地方生成的,有时这是不可行的,因此我建议在创建阅读器之后和加载文件之前添加以下代码行:$excel2->setReadDataOnly(true);
因此该代码块应读为:

$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2->setReadDataOnly(true);
$excel2 = $excel2->load('try.xlsx');

关于php - 关于 getHighestRow() 的数据不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203838/

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