Ver Mensaje Individual
  #1  
Antiguo 09-03-2013
joseprad joseprad is offline
Miembro
 
Registrado: oct 2006
Posts: 36
Reputación: 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