Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Resaltar celda de excel (https://www.clubdelphi.com/foros/showthread.php?t=56142)

voldemmor 08-05-2008 16:20:54

Resaltar celda de excel
 
hola amigos del foro espero que podais ayudar.

Código Delphi [-]
procedure TfrmActas.Button1Click(Sender: TObject);
var
i,j:Integer;
excel:Variant;
begin
  try
   Excel := CreateOleObject('Excel.Application');
   except
     Excel.Quit;
     showmessage('No se pudo crear el Objecto Excel o se produjo algún error.');
     raise;
     end;
//***** Asignamos el archivo a abrir *****//
    Excel.Workbooks.Open('c:\ejemplo.xls'); 
    excel.cells[1,3].value:='Listado de Alumnos '+ AnioActual;//renglon 5 columna 1
     excel.cells[2,3].value:='Especialidad :'+cbxEspecialidades.Text;
     excel.cells[3,3].value:='Curso :'+cbxCursos.Text;
     excel.cells[6,2].value:='Codigo';
     excel.cells[6,3].value:='Nombre y Apellido del Alumno';
     excel.rows[6].font.bold := true;
     with DataSource1.DataSet do
     begin
       First;
       j:= 7;
       while not Eof do
       begin
          if Fields[0].Visible then
          begin
          excel.cells[j,2].value := Fields[0].AsString;
          excel.cells[j,3].value := fields[1].AsString +' '+ Fields[2].AsString;
          inc(j);
          end;
          Next;
       end;
       excel.cells[4,3].value:='Total de alumnos :'+IntToStr(j-7);
     end;
     excel.cells.columns.autofit;
     excel.visible:=true;
  end;

con este codigo paso datos a un documento excel que lo tengo externamente, aun no he podido crear uno nuevo desde delphi, cada vez que lo requiero.

La duda

Quiero resaltar y remarcar los bordes de una celda de este documento excel, dado ciertas condiciones, claro esta:D, espero me podais orientar con esta duda, Si es posible con las instrucciones o que me digan donde puedo encontrar algun manual sobre esto, porque no lo he podido hallar


Gracias de antemano

ContraVeneno 08-05-2008 17:40:05

Código Delphi [-]
Uses Excel2000
....

var
  Excel, Libro: Variant;
...

  Excel:=CreateOleObject('Excel.Application');
  Excel.Visible := False;
  Excel.DisplayAlerts:= False;
  Excel.WorkBooks.Add;
  Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
  Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];
  Libro.Cells[1,1]:='Reporte';
.....
    Libro.Cells[i,4].Font.Bold:=True;
    Libro.Range['A'+inttostr(i-1), 'E'+inttostr(i-1)].Merge;
    Libro.Range['A'+inttostr(i-1), 'E'+inttostr(i-1)].Borders[xlBottom].weight := xlMedium;
    Libro.Range['A'+inttostr(i+1), 'E'+inttostr(i+1)].Merge;
    Libro.Range['A'+inttostr(i+1), 'E'+inttostr(i+1)].Borders[xlTop].weight := xlMedium;

  Excel.Visible:=true;

  //Excel.Quit;
  Libro:=Unassigned;
  Excel := Unassigned;

Con eso creas un archivo de excel nuevo y ahí viene el ejemplo de como poner bordes.

voldemmor 08-05-2008 17:48:12

EL pirewview
 
Gracias contraveneno. Lo pruebo y te aviso.

Otra duda. Me podrias decir como puedo activar la vista previa de excel, directamente desde mi codigo en delphi

BlueSteel 08-05-2008 17:59:21

Cita:

Empezado por voldemmor (Mensaje 285267)
Gracias contraveneno. Lo pruebo y te aviso.

Otra duda. Me podrias decir como puedo activar la vista previa de excel, directamente desde mi codigo en delphi


Hola, y lo que necesitas es que te abra el archivo una vez creado o verlo en una ventana de tu aplicación....

Para visualizar un archivo dentro de mi aplicación he utilizado el componente TWebBrowser (no me acuerdo de que paleta lo saque..)

y para pasar el archivo solo tienes que usar esto

Código Delphi [-]
   WebBrowser.Navigate(Ruta_del_archivo_y_nombre_de_archivo);

Salu2

ContraVeneno 08-05-2008 19:09:16

Bueno, eso haría que vieras el archivo dentro de tu aplicación. Pero con la instrucción "Excel.Visible" ya muestras el archivo, no dentro de tu aplicación, pero ya se muestra.

Y para lanzar la vista previa de excel, pues no se como se haga. Aunque debo decir que no veo la necesidad de hacer eso. Ya le muestras el archivo al usuario, si el lo quiere imprimir, que lo haga, si no, simplemente cierra excel.

voldemmor 08-05-2008 19:34:49

Tienes razon, en parte
 
Tienes razon , en parte, ya que le muestro el archivo de excel y el puede hacer lo que requira.

Pero: Ay de usuarios a usuarios, y creo yo que seria una buena obcion el activar excel en en vista previa.

PD: y despues de todo no es malo aprender algo nuevo.

ContraVeneno 08-05-2008 20:19:25

Pues si encuentras como mandar llamar la vista previa, nos avisas, para aprender todos como hacerle. :D

voldemmor 08-05-2008 20:42:20

otra dudita
 
Código Delphi [-]
 
excel.range['a1:d1'].HorizontalAlignment := 'xlHAlignCenter';
     excel.range['a1:d1'].VerticalAlignment := 'xlVAlignBottom';

esto se supone que debe alinear el texto.ç

Pero ne da un error, me dice que no se puede asignar el parametro.

Lo estoy aciendo bien o no. me podrian decir cual es mi error o si me falta algo en las cabeceras.
Solo tengo en las cabecera ComObj

roman 08-05-2008 21:02:11

Cita:

Empezado por ContraVeneno (Mensaje 285335)
como mandar llamar la vista previa

Código Delphi [-]
var
  ExcelApp: OleVariant;
  WorkBook: OLeVariant;

begin
  ExcelApp := ComObj.CreateOleObject('Excel.Application');
  WorkBook := ExcelApp.WorkBooks.Open('C:\ruta\al\archivo.xls');
  ExcelApp.Visible := true;
  WorkBook.PrintPreview;
end;

Cita:

Empezado por voldemmor (Mensaje 285349)
Código Delphi [-]
 
excel.range['a1:d1'].HorizontalAlignment := 'xlHAlignCenter';
     excel.range['a1:d1'].VerticalAlignment := 'xlVAlignBottom';

esto se supone que debe alinear el texto.

Los valores no se pasan como cadenas de caracteres pues son constantes numéricas. Debes incluir la unidad WordXP, o Word2000 o Word97, según la versión que uses.

// Saludos

voldemmor 09-05-2008 02:47:10

ok_
 
Cita:

Empezado por roman (Mensaje 285356)
Los valores no se pasan como cadenas de caracteres pues son constantes numéricas. Debes incluir la unidad WordXP, o Word2000 o Word97, según la versión que uses.



// Saludos

Gracia.
Ese era mi problema ya que las pase tal como me la postearon pero no me reconocia el compilador asi que lo puse con cadena de caracteres a ver que pasaba:D:D. Prueba y Herror:p.

Gracias..
Y manos a la obra

voldemmor 11-05-2008 23:49:56

Gracias
 
Gracias amigos.

Ya se ha solucionado todo.

Bueno He usado el Codigo de contraveneno para generar un nuevo documento excel.
La manera que indica roman para activar la vista previa desde codigo es correcta.
Y tenian razon me faltaban las referencias a las unidades (Uses ComObj, Excel2000), para que me funcionen las parametros.

Aun no pruebo la manera de visualizar que sugerio Blue
Gracias a todos por la ayuda


La franja horaria es GMT +2. Ahora son las 21:48:49.

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