Método de procesamiento de importación phpExcel para hacer coincidir los campos correspondientes según diferentes chinos

Método de procesamiento de importación phpExcel para hacer coincidir los campos correspondientes según diferentes chinos

Sin más preámbulos, ve directamente al hardcore

Primero, saque el campo y el nombre en la tabla de campos, guarde el nombre (chino) como la clave en una matriz keyArray, y el campo (campo) como el valor en el valueMap; obtenga la línea de título en chino de la tabla y guarde el contenido del cuerpo de la tabla obtenida. Incluyendo las filas chinas se destruyen; se realizan dos ciclos en sheetData, la segunda fila es la fila que se procesará, para determinar si la clave del segundo ciclo está en la matriz keyArray, si no existe, la columna no establecida, aún Necesita ser juzgado. Por ejemplo, hay algunas primeras columnas en la lista, es decir, [A] contiene palabras como "estadística", "total" y "significa". No es necesario insertarlo en la tabla de datos para juzgar si [A] no tiene estas palabras. array_column se ensambla con el valor (campo) como la clave, y el valor de cada fila de la tabla como el valor, y luego se inserta en la tabla.

La siguiente es la parte importante del código que se puede ver

// Este es el comienzo del procesamiento ====================== "
Contenido importante
/// Este es el final del procesamiento" ========== =============== Las
variables impresas también se retienen en el código. Si no entiende, puede dejar ir los comentarios y ver los resultados de cada paso paso a paso.

function excelImport2($post, $model, $model_field, $title_row)
{
    $m_leads = D($model);
    $shop_data = getShopInfo();
    $tyep_data = getTypeInfo();
    $types = getTypeData();

    if (isset($_FILES['excel']['size']) && $_FILES['excel']['size'] != null) {
        import('@.ORG.UploadFile');
        $upload = new UploadFile();
        $upload->maxSize = 20000000;
        $upload->allowExts = array('xls');
        $dirname = UPLOAD_PATH . date('Ym', time()) . '/' . date('d', time()) . '/';
        if (!is_dir($dirname) && !mkdir($dirname, 0777, true)) {
            alert('error', L('ATTACHMENTS TO UPLOAD DIRECTORY CANNOT WRITE'), $_SERVER['HTTP_REFERER']);
        }
        $upload->savePath = $dirname;
        if (!$upload->upload()) {
            alert('error', $upload->getErrorMsg(), $_SERVER['HTTP_REFERER']);
        } else {
            $info = $upload->getUploadFileInfo();
        }
    }

    if (is_array($info[0]) && !empty($info[0])) {
        $savePath = $dirname . $info[0]['savename'];
    } else {
        alert('error', L('UPLOAD FAILED'), $_SERVER['HTTP_REFERER']);
    };
    import("ORG.PHPExcel.PHPExcel");
    $PHPExcel = new PHPExcel();
    $PHPReader = new PHPExcel_Reader_Excel2007();
    if (!$PHPReader->canRead($savePath)) {
        $PHPReader = new PHPExcel_Reader_Excel5();
    }
    $PHPExcel = $PHPReader->load($savePath);
    $currentSheet = $PHPExcel->getSheet(0);
    $allRow = $currentSheet->getHighestRow();
    $highestColumn = $currentSheet->getHighestColumn();//how many columns
    $allColumn = PHPExcel_Cell::columnIndexFromString($highestColumn);

    $sheetData = $PHPExcel->getActiveSheet()->toArray(null, false, false, true);
    //删除导入的文件
    unlink($savePath);
//dump($sheetData);exit;
    $where2 = $keyArray = [];
    $where2['model'] = $model_field;
    //这是处理的开始======================》
    $field_list = M('NewFields')->where($where2)->order('order_id')->select();

    $modelData = array_column($field_list, 'field', 'name');
    if (isset($sheetData[$title_row])) {
        foreach ($sheetData[$title_row] as $key => $value) {
            if (isset($modelData[$value])) {
                $keyArray[] = $key;
                $valueMap[$modelData[$value]] = '';
            }
        }
    }
//    dump($keyArray);
//    dump($valueMap);exit;
    for ($i = 1; $i <= $title_row; $i++) {
        unset($sheetData[$i]);
    }
    $newData = [];
//    dump($sheetData);exit;
    foreach ($sheetData as $key => $value) {
        foreach ($value as $k => $v) {
            if (!in_array($k, $keyArray)) {
                unset($value[$k]);
            }
        }
        if (!($value['A'] == '总计') && !($value['A'] == '汇总') && !($value['A'] == '均值')) {
            $newData[] = array_combine(array_keys($valueMap), array_values($value));
        }
//            var_dump(array_keys($valueMap));
//            echo '-';
//            var_dump(array_values($value));
//            exit;
    }
//这是处理的结束《=======================================
    ········
    }
Publicado un artículo original · Me gusta0 · Visitas0

Supongo que te gusta

Origin blog.csdn.net/weixin_43928139/article/details/105563343
Recomendado
Clasificación