Trabalhando com Excel
Código
{
Exemplo de como gerar um arquivo em excel formatado e pronto para a
impressão.
Peço a todos que lerem esta dica e que tem algo a acrescentar, por
favor mande
para o email que segue abaixo.
Roberto
rcdslf@[Link]
11/09/2008
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Excel, Sheet : Variant;
Nome : String;
begin
//nome da planílha
Nome := 'Lacre';
//cria a aplicação
Excel := CreateOleObject('[Link]');
//mostra a tabela
[Link] := true;
//adiciona pasta de trabalho
[Link];
//deleta as planilhas que sobraram
[Link][1].Sheets[2].Delete;
[Link][1].Sheets[2].Delete;
//planilha recebendo variável nome
[Link][1].WorkSheets[1].Name := Nome;
//Repassando variável
Sheet := [Link][1].WorkSheets[Nome];
(*--------------------------------------------------------------------
--------*)
//Largura das colunas
[Link]['A1'].ColumnWidth := 1;
[Link]['B1:D1'].ColumnWidth := 21.71;
[Link]['E1'].ColumnWidth := 1;
(*--------------------------------------------------------------------
--------*)
//altura das células
[Link]['A1'].RowHeight := 9;
[Link]['A2'].RowHeight := 23.25;
[Link]['A3'].RowHeight := 7.5;
[Link]['A4'].RowHeight := 20.25;
[Link]['A5'].RowHeight := 12;
[Link]['A6'].RowHeight := 20.25;
[Link]['A7'].RowHeight := 18;
[Link]['A8'].RowHeight := 18;
[Link]['A9'].RowHeight := 18;
[Link]['A10'].RowHeight := 9;
(*--------------------------------------------------------------------
--------*)
//Mesclando Células
[Link]['B2:D2'].MergeCells := true;
[Link]['B4:D4'].MergeCells := true;
[Link]['B6:D6'].MergeCells := true;
(*--------------------------------------------------------------------
--------*)
//Escrevendo nas células
[Link]['B2'] := 'Cliente: Roberto Fodão';
[Link]['B4'] := 'Material: 1,5 x 14mm';
[Link]['B6'] := 'Referência: 3665';
[Link]['B8'] := 'Para cortar tam.:';
[Link]['C8'] := 'Usar Ref.:';
[Link]['D8'] := 'Tam.:';
[Link]['B9'] := 145;
[Link]['C9'] := 4065;
[Link]['D9'] := 143;
(*--------------------------------------------------------------------
--------*)
//Formatando células escritas
{Cliente}
[Link]['B2'].[Link] := 'Arial';
[Link]['B2'].[Link] := true;
[Link]['B2'].[Link] := true;
[Link]['B2'].[Link] := 18;
{Material}
[Link]['B4'].[Link] := 'Arial';
[Link]['B4'].[Link] := true;
[Link]['B4'].[Link] := 16;
{Referência}
[Link]['B6'].[Link] := 'Arial';
[Link]['B6'].[Link] := true;
[Link]['B6'].[Link] := 16;
{Para cortar tam / Usar ref / Tam}
[Link]['B8:D8'].[Link] := 'Arial';
[Link]['B8:D8'].[Link] := true;
[Link]['B8:D8'].[Link] := 14;
{Itens}
[Link]['B9:D9'].[Link] := 'Arial';
[Link]['B9:D9'].[Link] := 14;
(*--------------------------------------------------------------------
--------*)
//Formatação Células contornos
(* ==== Espessura da linha ==== *)
{
xlHairline = $00000001 - Super-Fino
xlMedium = $FFFFEFD6 - Médio
xlThick = $00000004 - Grosso
xlThin = $00000002 - Padrão(Normal)
}
(* ==== Tipos de Contornos ==== *)
{
xlInsideHorizontal = $0000000C
xlInsideVertical = $0000000B
xlDiagonalDown = $00000005
xlDiagonalUp = $00000006
xlEdgeBottom = $00000009
xlEdgeLeft = $00000007
xlEdgeRight = $0000000A
xlEdgeTop = $00000008
}
//linha na esq. espessura padrão
[Link]['A1:A10'].[Link][$00000007].Weight := $00000002;//
externo
[Link]['B2:B9'].[Link][$00000007].Weight := $00000002
;//interno
//linha em baixo espessura padrão
[Link]['A10:E10'].[Link][$00000009].Weight := $00000002;//
externo
[Link]['B9:D9'].[Link][$00000009].Weight := $00000002
;//interno
//linha lado direito espessura padrão
[Link]['E1:E10'].[Link][$0000000A].Weight := $00000002;//
externo
[Link]['D2:D9'].[Link][$0000000A].Weight := $00000002
;//interno
//linha em cima espessura padrão
[Link]['A1:E1'].[Link][$00000008].Weight := $00000002
;//externo
[Link]['B2:D2'].[Link][$00000008].Weight := $00000002
;//interno
(*--------------------------------------------------------------------
--------*)
//Alinhamento das células
(* ==== Tipos de Alinhamentos Verticais ==== *)
{
[Link]['B2'].VerticalAlignment := 1 - Top
[Link]['B2'].VerticalAlignment := 2 - Center
[Link]['B2'].VerticalAlignment := 3 - Bottom
}
{alinhamento vertical no centro}
[Link]['B2'].VerticalAlignment := 2;
[Link]['B4'].VerticalAlignment := 2;
[Link]['B6'].VerticalAlignment := 2;
[Link]['B8'].VerticalAlignment := 2;
[Link]['C8'].VerticalAlignment := 2;
[Link]['D8'].VerticalAlignment := 2;
[Link]['B9'].VerticalAlignment := 2;
[Link]['C9'].VerticalAlignment := 2;
[Link]['D9'].VerticalAlignment := 2;
(* ==== Tipos de Alinhamentos Horizontais ==== *)
{
[Link]['B2'].HorizontalAlignment := 3 - Center
[Link]['B2'].HorizontalAlignment := 4 - Right
{alinhamento horizontal no centro}
[Link]['B2'].HorizontalAlignment := 3;
[Link]['B4'].HorizontalAlignment := 3;
[Link]['B6'].HorizontalAlignment := 3;
[Link]['B8'].HorizontalAlignment := 3;
[Link]['C8'].HorizontalAlignment := 3;
[Link]['D8'].HorizontalAlignment := 3;
[Link]['B9'].HorizontalAlignment := 3;
[Link]['C9'].HorizontalAlignment := 3;
[Link]['D9'].HorizontalAlignment := 3;
(*--------------------------------------------------------------------
--------*)
//Adicionando grade nas células
(* ==== Formatação de Tipos de linhas do contorno ===== *)
{
LineStyle := 1 - Normal
LineStyle := 2 - Tracejado
LineStyle := 3 - Pontilhado
LineStyle := 4 - Seccionada Traço
LineStyle := 5 - Duplo Seccionada
}
(* ==== Formatação da Espessura linha contorno ==== *)
{
Weight := 1 - Super Fina
Weight := 2 - Fina
Weight := 3 - Média
Weight := 4 - Grossa
}
(* ==== Formatação Cor da linha contorno ==== *)
{
ColorIndex := 1 - Preto
ColorIndex := 2 - Branco
ColorIndex := 3 - Vermelho
ColorIndex := 4 - Verde Claro
ColorIndex := 5 - Azul
ColorIndex := 6 - Amarelo
...
ColorIndex := 56 - Cinza Escuro
}
[Link]['B8:D9'].[Link] := 1;//Estilo da linha: Normal
[Link]['B8:D9'].[Link] := 2;//espessura da linha:
Fina
[Link]['B8:D9'].[Link] := 1;//Cor da linha: Preto
(*--------------------------------------------------------------------
--------*)
{
- Adicionar figura
Esta dica pode ser meio inconviniente pois ela não direciona um lugar
específico
para a colocação da imagem, mas nm por isso deixa de ser importante.
[Link]('lugar_onde_se_encontra_a_figura');
- Adicionar um Replace
Serve como um find / replace, ele procura e substiui a string por
outra q deseja.
Ele subtitiu apenas o conteúdo q vc deseja o restante da string não
muda.
[Link]['A1:Z70'].Replace('Tam.:', 'Num.:');
|| ||
Onde: local da pesquisa / ('Texto_Procurado', 'Subtituir_Por')
}
(*--------------------------------------------------------------------
--------*)
(* ==== A configuração da folha deve vir antes do preview da folha ===
*)
//Configuração da folha
[Link] := 10;
[Link] := 10;
[Link] := 10;
[Link] := 10;
//Marcação da página no rodapé
[Link] := '&P';
//Alinhamento centralizado do conteúdo na horizontal
[Link] := true;
//Alinhamento centralizado do conteúdo na horizontal
[Link] := true;
{Para salvar existem duas opções:
- Se for salvar a aplicação totalmente criada:
[Link]('destino_onde_quer_salvar');
- Se for salvar uma aplicação que foi criada a partir de um arquivo
aberto
[Link];}
//Print Preview
[Link]['A1:E10'].PrintPreview;
{Para imprimir na impressora padrão do seu computador
[Link];
}
(*--------------------------------------------------------------------
--------*)
Sheet := Unassigned; //liberar da memória
end;
end.