Estimados tengo una duda estoy usando un código el cual podre mas abajo para pasar Un dbgrid a un Excel el proceso lo hace genial y sin problemas lo único es que cuando pasa unas presentaciones me pone el numero de presentación en el medio es decir la forma normal seria 01/02/2016 y al pasarlo a Excel aparece 02/01/2016 el problema es que son presentaciones osea no fechas puede ser presentación 1 o 2 de cualquier mes y año por ejemplo 01/12/2016 , 02/12/2016, 01/11/2016 y asi sucesivamente pero de ninguna manera puede quedar la presentación donde va el mes si alguien sabe porque pasa esto estaría muy agradecido ya he probado de todo y nada dejo el código del programa.-
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
var
excel:Variant;
fila,columna:Integer;
Data : TDataSet;
MyDataSet:TDataSet;
begin
try
excel:=CreateOleObject('Excel.Application');
except
ShowMessage('Excel no se pudo iniciar.');
exit;
end;
excel.Visible:=true;
Data:=DBGrid1.DataSource.DataSet;
Data.First;
fila:=1;
columna:=1;
excel.Workbooks.Add;
excel.Cells[1, 1].Value:='Resumen Semanal de Pagos';
excel.Cells[2, 1].Value:='Fecha';
excel.Cells[2, 2].Value:='Obra Social';
excel.Cells[2, 3].Value:='Presentación';
fila:=3;
try
while not(Data.eof) do
begin
for columna := 0 to DBGrid1.Columns.Count-1 do
begin
if columna < 4 then
Excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DBGrid1.Columns[Columna].FieldName).AsString;
if columna > 3 then
begin
excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DBGrid1.Columns[columna].FieldName).AsString;
excel.Cells[fila,columna + 1].NumberFormat:= '0';
end;
end;
Data.Next;
fila:= fila + 1;
end;
for columna:=1 to 11 do
begin
Excel.Columns[Columna].EntireColumn.AutoFit;
end;
Except
ShowMessage('Atención, se produjo un error en la transmisión.');
end;
end;
Otra cosa que me interesaría saber como dar color y cambiar la fuente en las celdas de Excel .-
Atte. Gonzalo.-