![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Veo que ya se ha tratado el cómo crear un NUEVO archivo hacia Excel, sin embargo, lo que yo necesito es hacer una comparación de un archivo XLS vs. un archivo DBF.
Para ello necesito leer, obviamente, ambos, por lo que mi pregunta sería ¿cómo traer datos de excel hacia Delphi? Agradezco de antemano su ayuda ![]() |
|
#2
|
||||
|
||||
|
Cita:
// Saludos |
|
#3
|
|||
|
|||
|
Hola, Román! Muchas gracias por el tip! lo intentaré y te comento si es que me funciona
Sinceramente no había encontrado nada sobre el tema la primera vez que busqué, por lo que creo que tendré qué aprender a buscar mejor Espero me tengan paciencia porque soy nuevo en esto de Delphi, jejeje ![]() Un saludo desde México a tod@s ![]() |
|
#4
|
|||
|
|||
|
Hola de nuevo, Román! Desafortunadamente, no me funcionó asi como lo mencionaste a Darkside
, pues me envia un mensaje que no se puede conectar porque XLS no es un formato de base de datos correcto.Si sabes algo de eso, agradeceré tu ayuda nuevamente. Un saludo enorme Alejandro |
|
#5
|
||||
|
||||
|
Bueno, no se si seguir el hilo pero con todo lo aqui dicho me parecio correcto continuar aqui. mi pregunta es:
¿ como incluyo formulas en las hojas excel creadas por este método ? logré incluir una formula poniendo un campo String con el contenido t.FieldByName(Cmp[ni]).AsString := '=H##-G##'; t.FieldByName(Cmp[nj]).AsString := '=H##*F##'; Pero ¿Como se usan las funciones de Excel? =Suma() -> =Sum() este funciona con SUM =SI() = Entero()
__________________
Sitrico |
|
#6
|
||||
|
||||
|
Pues mira, lo que yo hago es, crear primero la plantilla en Excel, la cual contendra, ya un formato predeterminado de fuentes, bordes, colores etc. y si deseo incluir alguna formula, en la misma plantilla la coloco donde desee que se aplique esta formula, al pasar los datos, en lugar de crear el archivo, llamo a la platilla y ahí vacio mis datos, y como caen a un formato predeterminado, todo es respetado, tanto formatos de texto, bordes etc. y las formulas funcionan muy bien.
Me expliqué???
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
|
#7
|
||||
|
||||
|
En este caso no me sirve lo de la plantilla, ya que la hoja es bastante compleja (una demostración de los calculos de un programa complejo según exigencias de la Ley) por eso estoy obligado a incluir las funciones de Excel, Ya logré usar fórmulas simples y la función SUMA que se usa por ej.
'=SUM(A1:A15)' ó '=RAND()' ----> Aleatorio Noten que es SUM y no SUMA ahora si trato de usar la funcion =SI() '=IF(B5-B6<0;B5-B6;0)' Me da un "Ole error 800A03EC" y lo mismo me pasa con la funcion ROUND (Redondear). He usado este código para hacer pruebas de sintaxis (en edit1.text) y no he podido encontrar el problema. Código:
Function LaFormula(f:String):String;
Var
p : Integer;
Begin
While(pos('##',f) <> 0) do
Begin
p := pos('##',f);
Delete(f,p,2);
Insert(IntToStr(Row),f,p);
End;
Result := f;
End;
procedure TForm1.Button1Click(Sender: TObject);
Var
RangeE:Range;
i,Row: Integer;
Begin
For i := 0 to Query1.FieldCount-1 do
begin
RangeE.Value := Query1.Fields[i].DisplayLabel;
RangeE := RangeE.Next;
End;
Row := 2;
While not(Query1.Eof) do
Begin
RangeE := ExcelApplication1.Range['A'+IntToStr(Row),'A'+IntToStr(Row)];
For i := 0 to Query1.FieldCount-1 do
begin
RangeE.Value := Query1.Fields[i].AsString;
RangeE := RangeE.Next;
End;
RangeE.Value := LaFormula('=SUM(C##:E##)');
RangeE := RangeE.Next;
RangeE.Value := LaFormula(Edit1.Text);
Query1.Next;
Inc(Row);
End;
end;
__________________
Sitrico Última edición por sitrico fecha: 26-04-2004 a las 23:23:09. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|