Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2013
joseprad joseprad is offline
Miembro
 
Registrado: oct 2006
Posts: 36
Poder: 0
joseprad Va por buen camino
Importar hojas Excel

Hola amigos:

Estoy trabajando con importación de datos de hojas excel, concretamente se trata de importar los datos de hojas de calculo de diferentes proveedores a una base de datos de Sql Server.

Estoy utilizado componentes ADO, y para evitar que tengan duplicados (que me los he encontrado), los inserto primero en un TstringList.Sorted lo cual me funciona bien, a continuación los guardo en la tabla de la base de datos.

Hasta aqui todo muy bien, el problema lo ha encontrado en una hoja que, supongo por el formato de la columna, que esta centrado, solo puedo leer los campos que empiezan por una letra.

Para probar si era el formato, lo he quitado y ahora solo me lee los campos que empiezan por numeros.

El codigo es el siguiente:

Código Delphi [-]
 LlistaCamps := TStringList.Create;
  // ---Creamos Sorted para que no guarde duplicados---
  LlistaCamps.Sorted := True;
  with FxEx.dsFulla do begin
    FxEx.dsFulla.CommandText := cboFulles.Value; //--Nombre de la hoja
    FxEx.dsFulla.Active := True;
    First;
    // ---Cargamos la StringGrid sin duplicados-----
      while not eof do begin
   // --- Salta se el precio esta a cero------------------
        if (FieldByName('Preu').AsString = '') or
          (FieldByName('Preu').AsInteger = 0) then
          Next
        else begin
          Camps := Tcamps.Create; //---Creamos una clase para guardar los datos
          Camps.Codi := FieldByName('Codi').AsString;
          Camps.Descripcio := FieldByName('Descripcio').AsString;
          Camps.Preu := FieldByName('Preu').AsFloat;
          if FieldByName('TassaRaee').AsString = '' then
            Camps.TassaRaee := 0
          else
            Camps.TassaRaee := FieldByName('TassaRaee').AsFloat;
          Camps.CodiBarres := FieldByName('CodiBarres').AsString;
          LlistaCamps.AddObject(FieldByName('Codi').AsString, Camps);
          LlistaCamps.Add(FieldByName('Codi').AsString);
          Next;
        end;
      end;

Estoy trabajando con Delphi 2010 y Windows 7.

Alguien sabe como podría limpiar los caracteres raros que pueda tener el campo Codi, ya que como no me los lee se quedan en blanco y si hay mas de uno los filtra como duplicados.

Muchas gracia por anticipado
Responder Con Cita
  #2  
Antiguo 09-03-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
joseprad,

Cita:
Empezado por joseprad
...como podría limpiar los caracteres raros que pueda tener el campo Codi...
Revisa este código
Código Delphi [-]
function ValidChar(s : string) : String;
var
   i : Integer;
begin
   for i := 1 to Length(s) do
   begin
      if s[i] in ['a'..'z', 'A'..'Z', '0'..'9', ' '] then
         Result := Result + s[i];
   end;
end;
El código anterior filtra los caracteres que no estén en el conjunto de validación, el cual es extensible a otros caracteres que se requieran validar.

Se puede implementar en tu aplicación de la siguiente forma:
Código Delphi [-]
    Camps.Codi := ValidChar(FieldByName('Codi').AsString);
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 09-03-2013 a las 20:01:01.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Numero de hojas de libro excel Anel Hernandez Varios 2 18-10-2012 10:39:51
Hojas de Excel... Jose Roman OOP 12 03-03-2009 16:50:53
Consultas SQL a Excel en varias hojas miquellg Conexión con bases de datos 1 22-08-2008 13:29:41
Creacion de mas hojas en Excel Osvaldo Carlos Servers 2 10-02-2006 23:45:26
Excel con varias hojas Ricardo Alfredo Varios 0 22-01-2004 15:07:33


La franja horaria es GMT +2. Ahora son las 19:35:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi