es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo ocultar una columna de un archivo de Excel al realizar una función de importación?

Quiero ocultar la columna program_code en el archivo de Excel al importar. ¿Qué debo hacer? Estoy usando ToModel para la clase Import.

ProgramImport.php:

public function __construct(string $program_code)
{
    $this->program_code = $program_code;
}

public function model(array $row)
{
    $row['program_code'] = $this->program_code;

    return new ProgramDetail([
        'program_detail_no' => $row['number'],
        'program_detail_code' => $row['program_code'],
        'program_detail_subject' => $row['subject_code'],
        'program_detail_semester' => $row['semester'],
        'program_detail_note' => $row['note'],
    ]);
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ocultar la columna program_code al importar un archivo de Excel utilizando la clase ToModel de Laravel-excel para importar una clase, simplemente puedes eliminar la columna program_code del archivo de Excel o modificar la función model en la clase ProgramImport.

    Para modificar la función model, puedes eliminar o quitar la clave program_code del arreglo $row antes de utilizarlo para crear una nueva instancia de ProgramDetail. El código actualizado de la función model se vería así:

    public function model(array $row)
    {
        unset($row['program_code']); // eliminar la clave program_code del arreglo $row
    
        return new ProgramDetail([
            'program_detail_no' => $row['number'],
            'program_detail_code' => $this->program_code, // utilizar el valor program_code pasado en el constructor
            'program_detail_subject' => $row['subject_code'],
            'program_detail_semester' => $row['semester'],
            'program_detail_note' => $row['note'],
        ]);
    }
    

    Con esta modificación, la columna program_code será ignorada y no se utilizará al crear la instancia de ProgramDetail.

Comments are closed.