PDA

Ver la Versión Completa : Importar desde Excel a Mysql o dbgrib


darkbits
23-04-2016, 01:29:48
hola
tengo este codigo que funciona de pelo, el problema es que el archivo tiene que ser csv, hay alguna forma de importar un xls?
este codigo importa directamente no respeta mi DB el campo id_numeral que es auto incremento. tengo que colocarlo al final de la tabla en la DB para que no le llene dato.

y como puedo continuar llenando ? porque ahi me da error..


_DM.tablarates.Active:=false;
_DM.consulta1.SQL.Add('LOAD DATA INFILE ''d:/rates.csv'' INTO TABLE voip.rates FIELDS TERMINATED BY '',''LINES TERMINATED BY ''\n''ignore 1 lines;');
_DM.consulta1.ExecSQL;
_DM.tablarates.Active:=True;
end;

yo necesito cargar de XLS a mi DB mysql o es mejor cargar XLS mediante un DBGRIB

no encuentro ejemplos de XLS y mysql o DBgrib agradesco su ayuda o si tienen ejemplo super asi los estudio.

AgustinOrtu
23-04-2016, 03:50:46
Graba el xls como csv

darkbits
23-04-2016, 16:10:02
Hola AgustinOrtu

en el ejemplo que comparto, si me funciona con csv
lo que yo necesito es directo importar desde xls

saludos.

AgustinOrtu
23-04-2016, 17:24:08
Entendi mal... :o

Busca por los foros y encontraras un monton de informacion, por ejemplo este enlace (http://www.clubdelphi.com/foros/showthread.php?t=89830&highlight=excel)

xalo
26-04-2016, 18:47:43
Un excel a un dbgrid:

Por ejemplo mediante ADO. Suelta en un form un ADOConnection, un ADOQuery, un Datasource, DBgrid, Edit (donde escribirás el nombre del archivo excel) y un button (lógicamente con sus links correspondientes)
Usa el siguiente código en onclick del boton y (salvo error) debería mostrar el contenido de la pestaña Hoja1 del archivo de excel.


ADOQuery1.Close;
ADOQuery1.SQL.text := 'SELECT * FROM [Hoja1$]';
ADOQuery1.Open;
DM.ADOConnection1.Connected := false;
ADOConnection1.ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;'+
'Data Source='+Edit1.text+
';Mode=Share Deny None;Extended Properties="Excel 12.0 Xml;'+
'HDR=yes";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=37;'+
'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+
'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+
'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'+
'Jet OLEDB:Dont Copy Locale on Compact=False;'+
'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;'+
'Jet OLEDB:Support Complex Data=False';

ADOConnection1.Open;


Un dbgrid a un CSV:

Por ejemplo, simplemente con el componente de las JCL-> JvDBGridExportCSV


Saludos

PD:Lo siento pero en el connectionstring veo unos smiles que no se suprimir :-)