Escolar Documentos
Profissional Documentos
Cultura Documentos
Abrir Documento Do Excel
Abrir Documento Do Excel
delphi 7 e juntamente com a chamada abrir uma planilha que se encontra em outra pasta.
Utilizo o XP Home.
declarar: ShellApi
Delphi Abrir
arquivo
de
qualque
r
extens
o
Delphi
Sheet.Range['D1'] := 'Salrio';
// por aqui tu limparias a planilha
xlEdgeTop = $00000008;}
// Incluindo Formulas (a formula deve ser incluida com seu nome original em
Ingls
// caso contrrio podera ocorrer problemas)
Sheet.Cells[i,3] := 'Total R$';
// Na linha abaixo inclui uma soma e converti para Moeda atravez do NUMBERFORMAT
Sheet.Cells[i,4].NumberFormat := 'R$ #.##0,00_);(R$ #.##0,00)';
Sheet.Cells[i,4].formula := '=SUM(D210)';
// Alinhando as Clulas
Sheet.Range['A1'].VerticalAlignment := 1; // 1=Top - 2=Center - 3=Bottom
Sheet.Range['B1'].VerticalAlignment := 2;
Sheet.Range['C1'].VerticalAlignment := 3;
Sheet.Range['B1'].HorizontalAlignment := 3; // 3=Center - 4=Right
Sheet.Range['C1'].HorizontalAlignment := 3;
Sheet.Range['D1'].HorizontalAlignment := 4;
// Adiciona Grade nas Colunas
Sheet.Range['A1','D11'].Borders.LineStyle := 1;
Sheet.Range['A1','D11'].Borders.Weight := 2;
Sheet.Range['A1','D11'].Borders.ColorIndex := 1;
// Excecuta um Replace na Celula localizada
// Lembre-se que ele alterara todas as celulas localizadas dentro
// do RANGE escolhido, ou seja, se ouverem 10 Colunas com o texto
// desejado este comando alterara as 10
Sheet.Range['A1','Z70'].Replace('Fone Cliente 10','Repassou o Texto');
// Cria Grafico
Sheet.ChartObjects.Add(10,160,450,130); // Coordenadas (Left,Top,Width,Height)
Chart := Sheet.ChartObjects[1]; // Cria o Grafico
Chart.Chart.ChartType := $FFFFEFFA; // Tipo do Grafico (veja tabela abaixo)
Chart.Chart.SeriesCollection.Add(Sheet.Range['D210']);
// Pode-se dar um PrintPreview apenas no Grfico, use o comando abaixo
//Chart.Chart.PrintPreview;
//--TIPOS DE GRAFICOS
//======================
{xlColumnClustered = $00000033;
xlColumnStacked = $00000034;
xlColumnStacked100 = $00000035;
xl3DColumnClustered = $00000036;
xl3DColumnStacked = $00000037;
xl3DColumnStacked100 = $00000038;
xlBarClustered = $00000039;
xlBarStacked = $0000003A;
xlBarStacked100 = $0000003B;
xl3DBarClustered = $0000003C;
xl3DBarStacked = $0000003D;
xl3DBarStacked100 = $0000003E;
xlLineStacked = $0000003F;
xlLineStacked100 = $00000040;
xlLineMarkers = $00000041;
xlLineMarkersStacked = $00000042;
xlLineMarkersStacked100 = $00000043;
xlPieOfPie = $00000044;
xlPieExploded = $00000045;
xl3DPieExploded = $00000046;
xlBarOfPie = $00000047;
xlXYScatterSmooth = $00000048;
xlXYScatterSmoothNoMarkers = $00000049;
xlXYScatterLines = $0000004A;
xlXYScatterLinesNoMarkers = $0000004B;
xlAreaStacked = $0000004C;
xlAreaStacked100 = $0000004D;
xl3DAreaStacked = $0000004E;
xl3DAreaStacked100 = $0000004F;
xlDoughnutExploded = $00000050;
xlRadarMarkers = $00000051;
xlRadarFilled = $00000052;
xlSurface = $00000053;
xlSurfaceWireframe = $00000054;
xlSurfaceTopView = $00000055;
xlSurfaceTopViewWireframe = $00000056;
xlBubble = $0000000F;
xlBubble3DEffect = $00000057;
xlStockHLC = $00000058;
xlStockOHLC = $00000059;
xlStockVHLC = $0000005A;
xlStockVOHLC = $0000005B;
xlCylinderColClustered = $0000005C;
xlCylinderColStacked = $0000005D;
xlCylinderColStacked100 = $0000005E;
xlCylinderBarClustered = $0000005F;
xlCylinderBarStacked = $00000060;
xlCylinderBarStacked100 = $00000061;
xlCylinderCol = $00000062;
xlConeColClustered = $00000063;
xlConeColStacked = $00000064;
xlConeColStacked100 = $00000065;
xlConeBarClustered = $00000066;
xlConeBarStacked = $00000067;
xlConeBarStacked100 = $00000068;
xlConeCol = $00000069;
xlPyramidColClustered = $0000006A;
xlPyramidColStacked = $0000006B;
xlPyramidColStacked100 = $0000006C;
xlPyramidBarClustered = $0000006D;
xlPyramidBarStacked = $0000006E;
xlPyramidBarStacked100 = $0000006F;
xlPyramidCol = $00000070;
xl3DColumn = $FFFFEFFC;
xlLine = $00000004;
xl3DLine = $FFFFEFFB;
xl3DPie = $FFFFEFFA;
xlPie = $00000005;
xlXYScatter = $FFFFEFB7;
xl3DArea = $FFFFEFFE;
xlArea = $00000001;
xlDoughnut = $FFFFEFE8;
xlRadar = $FFFFEFC9; }
// O PrintPreview abre a tela de visualizao do Excel
// e o PrintOut imprime na impressora padro do Windows
//Sheet.PrintPreview;
//Sheet.PrintOut;
// o SaveAs permite que vc salve automticamente o relatrio gerado
//Sheet.SaveAs('c:\teste.xls');
__________________________________________________________________________
Integrando uma aplicao Delphi com um documento Microsoft Word para realizar a
emisso de recibos de pagamentos:
1 Passo: modelo do recibo no Word
Criar um novo documento no Microsof Word e desenvolver o modelo do recibo de
pagamento acrescentando campos de texto que sero substitudos por valores
definidos na aplicao Delphi. O "Campo de Texto", indicado pela seta azul
na Figura 1, encontra-se na barra de ferramentas formulrios disponvel na "Guia
Desenvolvedor" na verso 2010 do Microsoft Word. Para mostrar a "Guia
Desenvolvedor" na barra de menu do Word deve-se:
a) No menu Arquivo, clicar em Opes.
b) Na janela "Opes do Word", clicar em Personalizar Faixa de Opes e a
seguir marcar a caixa Desenvolvedor em "Guias Principais".
Dois aspectos importantes devem ser observados na construo do modelo do
recibo no Word:
1) Os campos de texto devem ser identificados na caixa "Indicador" da janela
"Opes de formulrio de texto" aberta atravs de um duplo clique do mouse sobre
o respectivo campo. Na Figura 1 pode-se observar os nomes sugeridos para os
campos de texto, na ordem: Pagador, Extenso, Referente, Valor, Tipo, Local e
Assina. Estes nomes sero usados pelo Delphi para atribuir os valores dos
componentes de entrada da interface da aplicao aos respectivos campos no
documento Word.
2) Concludo o modelo do recibo ele dever ser salvo na pasta da aplicao com o
nome "RECIBO" do tipo "Modelo do Word" (RECIBO.dot).
Caption
Valor:
Name
edValor
Caption
Pagador:
Left
10
Left
10
Left
10
Top
Top
19
Top
50
Font
negrito, azul
Text
apagar
Width
100
Name
edPagador
Caption
Referente a:
Name
edReferente
Left
10
Left
10
Left
10
Top
64
Top
95
Top
109
Text
apagar
Text
apagar
Width
430
Width
430
Name
rgTipo
Caption
Cheque:
Caption
Banco:
Caption
Pagamento:
Left
150
Left
10
Left
10
Top
140
Top
24
Top
140
Height
70
Items
Dinheiro
Width
288
Cheque
ItemIndex
Columns
Height
70
Width
125
Name
edBanco
Caption
Agncia:
Name
edAgencia
Left
10
Left
105
Left
105
Top
38
Top
24
Top
38
Text
apagar
Text
apagar
Width
75
Width
75
Caption
Conta:
Name
edConta
Caption
Local:
Left
200
Left
200
Left
10
Top
24
Top
38
Top
220
Text
apagar
Width
75
Name
edLocal
Caption
Assina:
Name
edAssina
Left
10
Left
10
Left
10
Top
234
Top
265
Top
279
Text
apagar
Text
apagar
Width
430
Width
430
Name
Button1
Kind
bkClose
Caption
&Imprimir
Caption
&Fechar
Left
125
Left
365
Top
17
Top
17
4 Passo: implementao
a) Fazer referncia as unit's "ComObj" e "Um" no incio da implementation do
formulrio da aplicao como mostra a Listagem 1. A unit "ComObj" disponibiliza a
funoCreateOleObject utilizada para criar uma instncia do aplicativo Microsoft
Word. J a unit "Um" oferece a funo valorPorExtenso para retornar um valor
monetrio por extenso.
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
path := ExtractFilePath(Application.ExeName);
// cria um documento no Word a partir do modelo do recibo
WDoc := WApp.Documents.Open(path + 'RECIBO.dot');
WApp.Visible := True;
try
vlr := StrToFloat(edValor.Text);
// move os componentes de entrada da aplicacao Delphi
// para os campos de texto do recibo no Microsoft Word
WDoc.FormFields.Item('Valor').Result := Format('%m', [vlr]);
WDoc.FormFields.Item('Pagador').Result := edPagador.Text;
WDoc.FormFields.Item('Referente').Result := edReferente.Text;
WDoc.FormFields.Item('Extenso').Result := valorPorExtenso(vlr);
WDoc.FormFields.Item('Referente').Result := edReferente.Text;
WDoc.FormFields.Item('Local').Result := edLocal.Text;
WDoc.FormFields.Item('Assina').Result := edAssina.Text;
if (rgTipo.ItemIndex = 0) // pagamento em dinheiro
then WDoc.FormFields.Item('Tipo').Result :=
'Pagamento em Dinheiro.'
else // pagamento com cheque
WDoc.FormFields.Item('Tipo').Result :=
'Pagamento efetuado com o Cheque do Banco: ' +
edBanco.Text + ', Agncia: ' + edAgencia.Text + ', Conta: ' +
edConta.Text + '.';
except
end;
end;
33
34
35
36
37
Aspectos importantes da codificao apresentada na Listagem 2:
1) A varivel "WApp" recebe uma instncia do aplicativo Microsoft Word atravs da
instruo: WApp := CreateOleObject('Word.Application');
2) A varivel "WDoc" recebe o documento criado no Word a partir do modelo salvo
na pasta da aplicao atravs da instruo: WDoc :=
WApp.Documents.Open(path + 'RECIBO.dot');
3) Os valores dos componentes de entrada na interface so atribudos aos
respectivos campos de texto no documento Word atravs de instrues, como por
exemplo:
WDoc.FormFields.Item('Valor').Result := Format('%m', [vlr]);
WDoc.FormFields.Item('Pagador').Result := edPagador.Text;
WDoc.FormFields.Item('Extenso').Result := valorPorExtenso(vlr);
Executando a aplicao deve-se informar todos as informaes relacionadas ao
recibo: valor (R$), nome do pagador, finalidade do recibo, tipo do pagamento (em
dinheiro ou cheque), local do pagamento e o nome de quem assina, como mostra o
exemplo apresentado naFigura 2.
Figura 3. Documento criado no Word com os valores atribuidos pela aplicao Delphi.
Voltar ao Topo
Flavio_Ctba
Novato
Assunto:
oi Marc-br,
Realmente eu testei o metodo
Memo.Lines.ValueFromIndex[0]; e a
primeira letra da linha comida.
No sei se a finalidade deste mtodo
essa mesmo de pegar as informaes da
linha inteira ou outro...
Mas pra resolver o seu problema voce
pode fazer o seguinte:
ShowMessage(Memo.Lines[0]); //mostra a
linha1 do memo
ShowMessage(Memo.Lines[1]); //mostra a
linha2 do memo
espero q ajude,
flw
Voltar ao Topo
Marc-br
Aprendiz
Assunto:
Primeira Dica:
174 - Criar um documento no Word
Uses ComObj
end;
Observaes
Foram usados neste exemplo o Delphi4 e MS-Word97.