2016-10-03 71 views
-1

我发现了有关如何将数据从MySQL导出到Excel但不颠倒的信息,从Excel到MySQL。使用PHPExcel将Excel导出到MySql

此外,我要求使用PHPExcel,因为朋友建议使用它,但如果有最简单的方法来做到这一点,这是值得欢迎的。

我知道我可以从Excel中使用以下语法导出到MySQL(和静态字段):

LOAD DATA LOCAL INFILE '\\path' INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' 

但并不是所有的Excel字段将被导入到MySQL或以相同的顺序。

这是表结构,我有:

CREATE TABLE cliente (
    clienteId int(11) NOT NULL AUTO_INCREMENT, 
    clienteIdentidadTipo varchar(45) DEFAULT NULL, 
    clienteIdEntidadNumero varchar(45) DEFAULT NULL, 
    clienteNombres varchar(100) DEFAULT NULL, 
    clienteApellidosPrimero varchar(45) DEFAULT NULL, 
    clienteApellidosSegundo varchar(45) DEFAULT NULL, 
    clienteDireccion varchar(45) DEFAULT NULL, 
    clienteCelular varchar(45) DEFAULT NULL, 
    clienteTelefono varchar(45) DEFAULT NULL, 
    clienteGenero varchar(45) DEFAULT NULL, 
    clienteFechaNacimiento date DEFAULT NULL, 
    clienteEstadoCivil varchar(45) DEFAULT NULL, 
    clienteCargo varchar(45) DEFAULT NULL, 
    clienteOcupacion varchar(45) DEFAULT NULL, 
    clienteRecibeMensajesEmail tinyint(1) DEFAULT NULL, 
    clienteEmail varchar(45) DEFAULT NULL, 
    clienteClave varchar(100) DEFAULT NULL, 
    clienteRecibeMensajesSms tinyint(1) DEFAULT NULL, 
    clienteObjetivoVermeMejor tinyint(1) DEFAULT NULL, 
    clienteObjetivoSalud tinyint(1) DEFAULT NULL, 
    clienteObjetivoDesempeno tinyint(1) DEFAULT NULL, 
    clientePracticaDeporte tinyint(1) DEFAULT NULL, 
    clienteServicioCardio tinyint(1) DEFAULT NULL, 
    clienteServicioPersonalizado tinyint(1) DEFAULT NULL, 
    clienteServicioGrupales tinyint(1) DEFAULT NULL, 
    clienteServicioPesas tinyint(1) DEFAULT NULL, 
    clienteServicioFisioterapia tinyint(1) DEFAULT NULL, 
    clienteServicioFuncional tinyint(1) DEFAULT NULL, 
    clienteServicioOtro varchar(45) DEFAULT NULL, 
    clienteMedioConocioGym varchar(45) DEFAULT NULL, 
    clienteEmergenciaNombre varchar(45) DEFAULT NULL, 
    clienteEmergenciaTelefono varchar(45) DEFAULT NULL, 
    clienteEps varchar(45) DEFAULT NULL, 
    clienteIps varchar(45) DEFAULT NULL, 
    clienteCiudadId int(11) NOT NULL, 
    clienteEmpresaId int(11) NOT NULL, 
    clienteGrupoId int(11) NOT NULL, 
    clienteCertificaConcentimientoInformado tinyint(1) DEFAULT NULL, 
    clienteCertificaCuestionamientoAntecedente tinyint(1) DEFAULT NULL, 
    clienteCongelacion int(11) DEFAULT NULL, 
    clienteDiasTolerancia int(11) DEFAULT NULL, 
    clienteFechaPago int(11) DEFAULT NULL, 
    clienteTiquetera tinyint(1) DEFAULT NULL, 
    clienteUsuario varchar(45) DEFAULT NULL, 
    historiaClinicaId int(11) NOT NULL, 
    planId int(11) NOT NULL, 
    clientePracticaDeporteCual varchar(45) DEFAULT NULL, 
    clienteCupoCredito int(7) NOT NULL, 
    clienteImagen varchar(500) NOT NULL, 
    clienteValidacion int(11) NOT NULL, 
    clienteRh varchar(45) DEFAULT NULL, 
    PRIMARY KEY (clienteId,clienteCiudadId,clienteEmpresaId,clienteGrupoId,historiaClinicaId,planId), 
    UNIQUE KEY clienteId_UNIQUE (clienteId), 
    KEY fk_cliente_ciudad_idx (clienteCiudadId), 
    KEY fk_cliente_empresa1_idx (clienteEmpresaId), 
    KEY fk_cliente_grupo1_idx (clienteGrupoId), 
    KEY fk_cliente_historiaClinica1_idx (historiaClinicaId), 
    KEY fk_cliente_plan1_idx (planId), 
    CONSTRAINT fk_cliente_ciudad FOREIGN KEY (clienteCiudadId) REFERENCES ciudad (ciudadId) ON DELETE NO ACTION ON UPDATE NO ACTION, 
    CONSTRAINT fk_cliente_empresa1 FOREIGN KEY (clienteEmpresaId) REFERENCES empresa (empresaId) ON DELETE NO ACTION ON UPDATE NO ACTION, 
    CONSTRAINT fk_cliente_grupo1 FOREIGN KEY (clienteGrupoId) REFERENCES grupo (grupoId) ON DELETE NO ACTION ON UPDATE NO ACTION, 
    CONSTRAINT fk_cliente_historiaClinica1 FOREIGN KEY (historiaClinicaId) REFERENCES historiaclinica (historiaClinicaId) ON DELETE NO ACTION ON UPDATE NO ACTION, 
    CONSTRAINT fk_cliente_plan1 FOREIGN KEY (planId) REFERENCES plan (planId) ON DELETE NO ACTION ON UPDATE NO ACTION 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

这是我要导入到数据库中的Excel文件: Screenshot

+1

你对csv文件有什么看法。 – khalid

+0

load data infile命令不能将excel文件导入到mysql中。期。它可以导入文本文件。如果加载数据infile一般适用于你,只是字段的顺序是一个问题,那么请阅读加载数据infile上的mysql手册。 – Shadow

回答