按列浏览 Excel PHPEXCEL

问题描述 投票:0回答:1

我需要读取一个excel文件并将信息上传到我的数据库,信息的结构如下。

想法是先取A1,然后从B2到B8,N次,我用txt文件进行测试,几乎可以工作,但我无法使其在PhpExcel文件中工作。

    while(! feof($file)) {
 $i=0;
    $data = array();
    while($i<8){
        $line = fgets($file);
        echo $line. "<br>";
        array_push($data, $line);
        //echo $data[$i];
        $i=$i+1;
    }
    $medida_data=array(            
        'id_solicitud'  => 133,
        'programa'  => 1,
        'orden' => $data[0],  
        'ges' => $data[1],                   
        'dimension' =>$data[2],                   
        'actividades' => $data[3],
        'ejecucion' =>$data[4],
        'fecha_comprometida' => date('Y-m-d',strtotime($data[5])),
        'fecha_creacion' => date('Y-m-d'),
        'plazo' => $data[6],                   
        'estado' => 1
    );     
    $this->propuestas_model->register_medida_plan($medida_data);
    echo "<br>";
    $i=0;

目前我有一个简单的公式来运行Excel文件,从行到行,但我不知道如何在列之间跳转。

    $reader->open($inputFileName);
    $count = 1;
    $worksheet = $spreadsheet->getActiveSheet();
    //Numero de Hojas en el Archivo 
        foreach ($worksheet->getRowIterator() as $row) {
            if($row[0] != ''){
             if($count > 1) {
                    $data = array(
                        'fecha_edicion' => date("Y-m-d", strtotime($row[0])),
                        'orden' => $row[1][1],
                        'ges' => $row[2],
                        'dimension' => $row[3],
                        'ejecucion' => $row[4],
                        'actividades' => $row[5],
                        'medios_verificacion' => $row[6]
                       
                    );  
                    //$this->db->insert('medidas',$data);                       
                }  
                $count++;                           
            }
        }
php html codeigniter-3 phpexcel
1个回答
0
投票

如果我的观点正确,你可以在代码中添加 2 个计数器

$row_counter 用于计算行数

$group_counter 用于计算每 8 行

例如,第一个 Folio 的行计数器从 1 开始,因此下一个 Folio 编号应为 9,接下来是 17,接下来是 25,并且...

当你将这个想法转化为代码时:

$row_ounter = 0;
$group_counter = 0;

foreach ($worksheet->getRowIterator() as $row) {
    
    $row_ounter++;
    
    if ($group_counter == 0) {
        //It's Folio
        $group_counter++;
    
    } elseif ($row_ounter % ($group_counter * 8) == 1) {
        //It's Folio
        $group_counter++;
    
    } else {
        //It's NOT Folio
    }
}

还请注意:

PHPExcel - 已死

项目多年未维护,不得使用 不再了。所有用户必须迁移到其直接后继者 PhpSpreadsheet,或其他替代品。

© www.soinside.com 2019 - 2024. All rights reserved.