1

我试图想出一个可以做我想要的查询,但是它让我很难过,所以我想我会选择一些大脑的想法。

我有一个 excel 文件,它被读取并转换为每一行和每一列的循环。

excel文件上有大约5000个值,所以发生了很多循环,我希望它在第二个循环内查询数据库的列代码,如果我的数据库中有一个不是任何值它正在循环的代码将删除它。并且在循环中但不在数据库中的任何代码都将在页面上回显。

我的脚本工作正常,但它只是构建我感到困惑的查询。

任何建议都非常感谢,西蒙

我的代码:

fileName    = '2_1_2013_UPC_customer.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load("2_1_2013_UPC_customer.xlsx");
include_once dirname(__FILE__) . ('/PHPExcel/Writer/Excel2007.php');
require_once dirname(__FILE__) . '/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("2_1_2013_UPC_customer.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = $worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns          = ord($highestColumn) - 64;
    for ($row = 2; $row <= $highestRow; ++$row) {
        for ($col = 0; $col < $highestColumnIndex; ++$col) {
            $cell     = $worksheet->getCellByColumnAndRow($col, $row);
            $val      = $cell->getValue();
            $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);

            if ($val == null) {
            } else {

                if ($col == 0) {
                $name = $val;
                }
                if ($col == 2) {
                $description = $val;
            }
            if ($col == 3) {
                $reference = $val;
            }
            if ($col == 4) {
                $weight = $val;
            }
        }
}

}
4

1 回答 1

1

在循环遍历 Excel 文件时构建一个包含所有代码的数组。在 Excel 文件中获得所有代码后,查询数据库并获取其中所有代码的数组。然后,您可以轻松地比较它们。一旦您不必担心所有 php_excel 代码,它应该会更容易做到。将两个数组分开后,您可以使用 php array_search 函数检查代码是否存在于两个数组中,然后处理它。

于 2013-03-29T00:01:53.047 回答