Cómo usar php para cargar Excel
Copia el código de la siguiente manera:
En segundo lugar, procese el archivo en el archivo php correspondiente
Copiar el código de la siguiente manera:
if (!empty ( $_FILES ['file_stu'] ['name'] )
{
$tmp_file = $_FILES ['file_stu'] [ 'tmp_name'];
$file_types = explotar ( "." , $_FILES ['file_stu'] ['nombre'] );
$file_type = $file_types [count ( $file_types ) - 1];
/* Distinguir si es un archivo .xls o un archivo excel*/
if ( strtolower ($file_type ) != "xls")
{
$this->error ( 'No es un archivo de Excel, vuelve a subir' );
}
/*Configuración Ruta de carga*/
$savePath = SITE_PATH .'/public/upfile/Excel/'
/* Nombra el archivo de carga por hora*/
$ str = date ( 'Ymdhis' );
$file_name = $str .." .$file_type;
/*Si la carga fue exitoso*/
if (! copy ( $tmp_file, $savePath . $file_name ))
{
$this->error ( 'Error en la carga' );
}
/*
* Procesa los datos de Excel cargados para generar datos de programación. Esta función se utilizará en la clase ExcelToArray en el paso 3 a continuación.
Nota: Esto llama a la función de lectura en el tercer paso de la clase de ejecución, convierte Excel en una matriz y lo devuelve a $res, y luego lo escribe en la base de datos
* /
$res = Service ( 'ExcelToArray ' )->read ( $savePath .$file_name );
/*
Código importante para solucionar el problema de los métodos THINKPHP M y D que no se llaman
Si encuentra el problema de que los métodos THINKPHP M y D no son válidos, agregue las siguientes líneas de código: */
// spl_autoload_ Register ( array ('Think' ) ->.register ( array ('Think', 'autoload ' );
/* Escribe la base de datos en la matriz generada */
>
foreach ( $res como $k => $v )
{
if ($k != 0)
{
$datos ['uid'] = $v [0];
$datos ['contraseña'] = sha1 ( '111111' ); 'correo electrónico'] = $v [1];
$datos ['uname'] = $v [3];
$datos ['instituto'] = $v [ 4];
$resultado = M ( 'usuario' )->add( $datos );
if (!$resultado)
{ p>
$this->error ('Error al importar la base de datos');
}
}
}
}
}
Tercero: clase ExcelToArrary, utilizada para hacer referencia a phpExcel y procesar datos de Excel
Copie el código de la siguiente manera:
clase ExcelToArrary extiende Service{
public function __construct() {
/* Importa la clase principal de phpExcel Nota: tu ruta no es la misma que la mía no se puede copiar directamente */< / p>
include_once('./Excel/PHPExcel.php');
}
/**
* Leer excel $filename ruta Nombre de archivo $encode La codificación predeterminada de los datos devueltos es utf8
* El siguiente contenido básicamente no se cambiará
*/
función pública read($ nombre de archivo,$encode= 'utf-8'){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->.setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet- >getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); excelData = array() ;
for($fila = 1; $fila <= $highestRow; $fila++) {
for ($col = 0; $col < $highestColumnIndex ;$col++) {
$datosexcel[
$fila][] = (cadena)$objWorksheet-> getCellByColumnAndRow($col,$fila)->getValue();
}
}
}
}
Devuelve $excelData;
}
}
}