Ferramentas do usuário

Ferramentas do site


excel

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
excel [2017/03/18 13:51]
emiliolemos removida
excel [2017/03/24 13:21] (atual)
emiliolemos criada
Linha 1: Linha 1:
-====== Excel ======+====== ​Dicas do Excel ======
  
-''​+  * [[Como encerrar o excel que está rodando em segundo plano]]
  
-2355- Gera Resultado de Consulta no Excel  
- 
-A Procedure GerarExcel foi enviado para o concurso UPLoder Master e foi desenvolvido por Fabrício Desbessel. Este procedimento recebe como parâmetro o nome de um componente de consulta, TQuery1 por exemplo, e gera uma planilha no Excel com os campos e registros da consulta. Observe o código abaixo: ​ 
- 
-procedure TForm1.GerarExcel(Consulta:​TQuery); ​ 
-var  
-coluna, linha: integer; ​ 
-excel: variant; ​ 
-valor: string; ​ 
-begin  
-try  
-excel:​=CreateOleObject(\'​Excel.Application\'​); ​ 
-excel.Workbooks.add(1); ​ 
-except ​ 
-Application.MessageBox (\'​Versão do Ms-Excel\'​+ ​ 
-\'​Incompatível\',​\'​Erro\',​MB_OK+MB_ICONEXCLAMATION); ​ 
-end;  
-Consulta.First; ​ 
-try  
-for linha:=0 to Consulta.RecordCount-1 do  
-begin  
-for coluna:=1 to Consulta.FieldCount do  
-begin  
-valor:= Consulta.Fields[coluna-1].AsString;​ excel.cells [linha+2,​coluna]:​=valor; ​ 
-end;  
-Consulta.Next; ​ 
-end;  
-for coluna:=1 to Consulta.FieldCount do  
-begin  
-valor:= Consulta.Fields[coluna-1].DisplayLabel; ​ 
-excel.cells[1,​coluna]:​=valor; ​ 
-end;  
-excel.columns.AutoFit; ​ 
-excel.visible:​=true; ​ 
-except ​ 
-Application.MessageBox (\'​Aconteceu um erro desconhecido durante a conversão\'​+ ​ 
-\'da tabela para o Ms-Excel\',​\'​Erro\',​MB_OK+MB_ICONEXCLAMATION); ​ 
-end;  
-end;  
- 
- 
-2399- Exibindo dados de um DataSet no Excel  
- 
-Digite o código abaixo para criar uma rotina de exibição de dados de um DataSet em uma tabela do Excel: ​ 
- 
-uses  
-ComObj, ActiveX, Excel2000; // ou Excel97... ​ 
- 
-procedure SendToExcel(aDataSet:​ TDataSet); ​ 
-var  
-PreviewToExcel:​ TExcelApplication; ​ 
-RangeE: Excel2000.Range; ​ 
-I, Row: Integer; ​ 
-Bookmark: TBookmarkStr; ​ 
-begin  
-PreviewToExcel := TExcelApplication.Create(Self); ​ 
-PreviewToExcel.Connect; ​ 
-PreviewToExcel.Workbooks.Add(NULL,​ 0);  
-RangeE := PreviewToExcel.ActiveCell; ​ 
-for I := 0 to aDataSet.Fields.Count - 1 do  
-begin  
-RangeE.Value := aDataSet.Fields[I].DisplayLabel; ​ 
-RangeE := RangeE.Next; ​ 
-end;  
-aDataSet.DisableControls; ​ 
-try  
-Bookmark := aDataSet.Bookmark; ​ 
-try  
-aDataSet.First; ​ 
-Row := 2;  
-while not aDataSet.EOF do  
-begin  
-RangeE := PreviewToExcel.Range[\'​A\'​ + IntToStr(Row),​ \'​A\'​ + IntToStr(Row)]; ​ 
-for I := 0 to aDataSet.Fields.Count - 1 do  
-begin  
-RangeE.Value := aDataSet.Fields[I].AsString; ​ 
-RangeE := RangeE.Next; ​ 
-end;  
-aDataSet.Next; ​ 
-Inc(Row); ​ 
-end;  
-finally ​ 
-aDataSet.Bookmark := Bookmark; ​ 
-end;  
-finally ​ 
-aDataSet.EnableControls; ​ 
-end;  
-RangeE := PreviewToExcel.Range[\'​A1\',​ chr(64 + aDataSet.Fields.Count) + IntToStr(Row - 1)];  
-RangeE.AutoFormat(8,​ NULL, NULL, NULL, NULL, NULL, NULL); ​ 
-PreviewToExcel.Visible[0] := True;  
-PreviewToExcel.Disconnect; ​ 
-end;  
- 
-No evento OnClick do botão coloque o código abaixo: ​ 
- 
-procedure TForm1.Button1Click(Sender:​ TObject); ​ 
-begin  
-SendToExcel(Table1); ​ 
-end  
- 
- 
- 
-2582- Como importar dados de uma planilha excel (1)  
- 
-Como importar dados de uma planilha excel utilizando delphi? ​ 
- 
-Coloque os seguintes componentes na tela:  
-- TExcelApplication (Servers) ​ 
-- TExcelWorksheet (Servers) ​ 
-- TOpenDialog (Dialogs) ​ 
- 
-Primeiro, crie as seguintes funções para abrir e fechar o excel: ​ 
- 
-procedure AbreExcel; ​ 
-begin  
-Caminho := \'​\'; ​ 
-OpenDialog1.Execute; ​ 
-If OpenDialog1.FileName = \'​\'​ then  
-// Caso não seja selecionado um arquivo ​ 
-//não executa outros procedimentos ​ 
-abort  
-Else  
-Caminho := OpenDialog1.FileName; ​ 
-lcid := GetUserDefaultLCID; ​ 
-//pega o usuário logado ​ 
-ExcelApplication1.Visible[lcid] := false; ​ 
-//torna a aplicação invisível ​ 
-ExcelApplication1.DisplayAlerts[lcid] := false; ​ 
-//remove alertas do excel  
-//Esta linha conecta a aplicação com o arquivo. ​ 
-WkBk := ExcelApplication1.Workbooks.Open(Caminho, ​ 
-EmptyParam, ​ 
-EmptyParam, EmptyParam, EmptyParam, ​ 
-EmptyParam, EmptyParam, EmptyParam, ​ 
-EmptyParam, EmptyParam, EmptyParam, ​ 
-EmptyParam, EmptyParam, LCID); ​ 
-//Conecta a planilha (1) que será a planilha a  
-//fornecer os dados  
-ExcelWorksheet1.ConnectTo(WkBk.Worksheets[1] as _Worksheet); ​ 
-//ativa a planilha conectada ​ 
-ExcelWorksheet1.Activate(LCID); ​ 
-end;  
- 
-procedure FechaExcel; ​ 
-begin  
-ExcelWorkSheet1.Disconnect; ​ 
-ExcelApplication1.Quit; ​ 
-ExcelApplication1.Disconnect; ​ 
-ExcelApplication1.Free; ​ 
-end;  
- 
-Em seguida, os procedimentos para importar os dados do excel. No caso, estou inserindo em uma tabela: ​ 
- 
-AbreExcel; ​ 
-linha := 2;  
-while ((ExcelWorksheet1.Range[\'​A\'​+ inttostr(linha),​\'​A\'​+inttostr(linha)].Text) <> \'​\'​) or ((ExcelWorksheet1.Range[\'​B\'​+ inttostr(linha),​\'​B\'​+inttostr(linha)].Text) <> \'​\'​) or ((ExcelWorksheet1.Range[\'​C\'​+ inttostr(linha),​\'​C\'​+inttostr(linha)].Text) <> \'​\'​) do  
-begin  
-with qry do  
-begin  
-SQL.Clear; ​ 
-SQL.Add(\'​INSERT INTO SAF.BOLSA_PREVISAO \'​); ​ 
-SQL.Add(\'​VALUES (:ID_ALUNO, :NOME, :​IDADE\'​); ​ 
-ParambyName(\'​ID_ALUNO\'​).AsInteger := ExcelWorksheet1.Range[\'​A\'​+ inttostr(linha),​\'​A\'​+inttostr(linha)].Value; ​ 
-ParambyName(\'​NOME\'​).AsString := ExcelWorksheet1.Range[\'​B\'​+ inttostr(linha),​\'​B\'​+inttostr(linha)].Value; ​ 
-ParambyName(\'​IDADE\'​).AsInteger := ExcelWorksheet1.Range[\'​C\'​+ inttostr(linha),​\'​C\'​+inttostr(linha)].Value; ​ 
-ExecSQL; ​ 
-end;  
-linha := linha + 1;  
-end;  
-FechaExcel; ​ 
- 
-Esse foi o jeito que eu encontrei para resolver este problema, qualquer dúvida entre em contato. ​ 
- 
-Gabi  
- 
- 
- 
- 
-2583- Como importar dados de uma planilha excel (2)  
- 
-Como importar dados de uma planilha excel utilizando delphi? ​ 
- 
-Não coloque componente nenhum na tela ... Coloque no uses :  
- 
-ComObj ​ 
- 
-procedure Importa; ​ 
-var  
-Excel : OleVariant; ​ 
-begin  
-Try  
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-Excel.Visible := False; {True mostra o excel, false naum mostra} ​ 
-Excel.WorkBooks.Open(CAMINHO_E_NOME_DO_ARQUIVO,​ EmptyParam, EmptyParam, EmptyParam, SENHA_DA_PLANILHA,​ EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); ​ 
-LABEL.CAPTION := String(Excel.WorkBooks[1].Sheets[1].Cells[LINHA,​ COLUNA]; ​ 
-Excel.WorkBooks.Close; ​ 
-Excel.Quit; ​ 
- 
-O mesmo vale para o contrario :  
- 
-String(Excel.WorkBooks[1].Sheets[1].Cells[LINHA,​ COLUNA] := LABEL.CAPTION; ​ 
- 
-E para salvar é  
- 
-Excel.ActiveWorkBook.Save; ​ 
- 
-Acabei de fazer um programa com isso e funciona batatinha ...  
- 
- 
- 
-18- Delphi e Excel  
-Siga os passos abaixo para exportar um Dataset para o MS Excel 97.  
-Este exemplo mostra como exportar o conteúdo de uma Dataset (TTable or TQuery) para o Excel, usando Ole automation. ​ 
-Começe um novo projecto, ponha uma Tabela(Table1),​ um Datasource(Datasource1) e um butão(button1) na Form1. Ligue o Datasource à Tabela e a Tabela à base de dados, escolha o nome da Tabela...etc. ​ 
-No uses clause punha a unit ComObj se está a usar o Delphi 4, ou Oleauto se está a usar o Delphi 2, 3.  
-Clique no button1 e cole o seguinte código: ​ 
- 
-procedure TForm1.Button1Click(Sender:​ TObject); ​ 
-var  
-Celula: Variant; ​ 
-MSExcel: OleVariant; ​ 
-ExcelBook: OleVariant; ​ 
-ExcelSheet: OleVariant; ​ 
-Coluna, Linha: LongInt; ​ 
-begin  
-try  
-MSExcel := CreateOLEObject( \'​Excel.Application\'​ );  
-ExcelBook := MSExcel.WorkBooks.Add; ​ 
-ExcelSheet := ExcelBook.WorkSheets.Add; ​ 
-Linha := 1;  
-with Table1 do  
-begin  
-first; ​ 
-while not EOF do  
-begin  
-for Coluna := 0 to FieldCount-1 do  
-begin  
-if Fields[FieldCount-1].visible=true then  
-begin  
-Celula := ExcelSheet.Cells[ Linha, Coluna+1 ];  
-Celula.Value := Fields[ Coluna ].AsString; ​ 
-end;  
-end;  
-next;  
-Inc( Linha );  
-end;  
-end;  
-except ​ 
-ShowMessage(\'​Não foi possível iniciar o Microsoft Excel.\'​); ​ 
-exit;  
-end;  
-MSExcel.Visible := True;  
-end;  
- 
- 
- 
- 
-760- Planilha Excel  
- 
-Seguinte eu tenho um sistema que exporta dados de uma tabela para uma planilha Excel, ​ 
-Costumo usar StringGrid e o texto abaixo: ​ 
- 
-var  
-XlApp : Variant; ​ 
-Sheet : Variant; ​ 
- 
-XlApp := CreateOleObject(\'​Excel.Application\'​); ​ 
-XlApp.Visible := True;  
-XlApp.WorkBooks.Add( XlWBatWorkSheet );  
-XlApp.WorkBooks[1].WorkSheets[1].Name:​= ExtractFileName( odFiletxt.FileName );  
-Sheet := XlApp.WorkBooks[1].WorkSheets[ ExtractFileName( odFiletxt.FileName )];  
-icont := 0;  
-While ( icont = sgCVSExport.RowCount ) do  
- 
-begin  
-Sheet.Cells[ icont+1, 1] := sgCVSExport.Cells[ 0, icont ];  
-Sheet.Cells[ icont+1, 2] := sgCVSExport.Cells[ 1, icont ];  
-Sheet.Cells[ icont+1, 3] := sgCVSExport.Cells[ 2, icont ];  
-Sheet.Cells[ icont+1, 4] := sgCVSExport.Cells[ 3, icont ];  
-Sheet.Cells[ icont+1, 5] := sgCVSExport.Cells[ 4, icont ];  
-Sheet.Cells[ icont+1, 6] := sgCVSExport.Cells[ 5, icont ];  
-Sheet.Cells[ icont+1, 7] := sgCVSExport.Cells[ 6, icont ];  
-Sheet.Cells[ icont+1, 8] := sgCVSExport.Cells[ 7, icont ];  
-Sheet.Cells[ icont+1, 9] := sgCVSExport.Cells[ 8, icont ];  
-Sheet.Cells[ icont+1, 10] := sgCVSExport.Cells[ 9, icont ];  
-Sheet.Cells[ icont+1, 11] := sgCVSExport.Cells[ 10, icont ];  
-Sheet.Cells[ icont+1, 12] := sgCVSExport.Cells[ 11, icont ];  
-Sheet.Cells[ icont+1, 13] := sgCVSExport.Cells[ 12, icont ];  
-Sheet.Cells[ icont+1, 14] := sgCVSExport.Cells[ 13, icont ];  
-Sheet.Cells[ icont+1, 15] := sgCVSExport.Cells[ 14, icont ];  
-Sheet.Cells[ icont+1, 16] := sgCVSExport.Cells[ 15, icont ];  
-Sheet.Cells[ icont+1, 17] := sgCVSExport.Cells[ 16, icont ];  
-inc( icont, 1 );  
-end;  
- 
-XlApp.columns.autofit; ​ 
- 
- 
- 
- 
-1180- Planilha excel para Delphi como fazer !!!  
- 
-Como transferir uma planilhas de excel para o banco de dados Delphi. ​ 
-1. tente exportar as planilhas do excel para algum tipo de banco de dados. ​ 
-2. para gerar um arquivo do excel pelo delphi: ​ 
-Como enviar dados do Delphi para o Excel  
-procedure TFormCTEmbarque.SpeedButton1Click(Sender:​ TObject); ​ 
-var  
-Excel : Variant; ​ 
-Linha:​Integer; ​ 
-begin  
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-Excel.Visible :​=True; ​ 
-{Excel.Workbooks.Add;​} ​ 
-Excel.WorkBooks.Open(\'​\\\\SERVIDOR\\Cotacao\\Gerar.xls\'​); ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[2,​7]:​=Now; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[3,​2]:​=DMCotacao.TBLiberaRemetente.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[3,​5]:​=DMCotacao.TBLiberaColeta.Value +  
-\'​-\'​ +DMCotacao.TBLiberaUF_Coleta.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[4,​2]:​=DMCotacao.TBLiberaDestinatario.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[4,​5]:​=DMCotacao.TBLiberaDestino.Value +  
-\'​-\'​ +DMCotacao.TBLiberaUF_Destino.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​2]:​=DMCotacao.TBLiberaQuantidade.AsString; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​5]:​=DMCotacao.TBLiberaFreteEmpresa.AsStrig; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​7]:​=DMCotacao.TBLiberaContrato.AsString; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​2]:​=FormCTEmbarque.Edit2.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​5]:​=FormCTEmbarque.Edit3.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​7]:​=FormCTEmbarque.Edit4.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[7,​2]:​=DMCotacao.TBLiberaObservacao.Value; ​ 
-DmCotacao.QCTEmbarque.Open; ​ 
-Linha:​=10; ​ 
-While not DMCotacao.QCTEmbarque.Eof do  
-Begin  
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​2]:​=DMCotacao.QCTEmbarqueCTRC.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​3]:​=DMCotacao.QCTEmbarqueNotaFiscal.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​4]:​=DMCotacao.QCTEmbarquePeso.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​5]:​=DMCotacao.QCTEmbarquePlaca.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​6]:​=DMCotacao.QCTEmbarqueData.Value; ​ 
-DmCotacao.QCTEmbarque.Next; ​ 
-Linha:​=Linha+1; ​ 
-end;  
-Excel.WorkBooks[1].SaveAs(\'​\\\\SERVIDOR\\Cotacao\\Controle.xls\'​); ​ 
-DMCotacao.TBCotacao.Refresh; ​ 
-end;  
- 
- 
- 
-1339- Ler planilha excel  
- 
-Como faço para ler uma planilha excel e joga-la para um banco de dados Oracle? ​ 
- 
-Se Você está usando o Delphi 5 Clique na Guia ADO e use estes componentes para Transformar seu Arquivo Excel, Access etc  
- 
-var  
-Excel:​variant; ​ 
-Begin  
-Excel := CreateOleObject(\'​Excel.application\'​); ​ 
-Excel.Worbooks.Open(\'​c:​\\teste.xls\'​); ​ 
-//​Excel.Worbooks.Sheets[1].Cells[2,​7]:​= Conteudo Lin 2 Col 7  
-// Desta forma envie os dados para o BD  
-end;  
- 
- 
-1785- Copiando dados do Excel para o Clipboard ​ 
- 
-procedure TForm1.CopyData; ​ 
-var  
-Sheets: Variant; ​ 
-begin  
-SetFocus; ​ 
-Sheets:​=XLApp.Sheets; ​ 
-// Selecionando a planilha: ​ 
-Sheets.Item[‘Delphi Data’].Activate; ​ 
-// Selecionando as celulas: ​ 
-Sheets.Item[‘Delphi Data’].Range [‘A1:​A10’].Select; ​ 
-{Copiando as celulas selecionadas para o clipboard:​} ​ 
-Sheets.Item[‘Delphi Data’].UsedRange. Copy;  
-//Inserindo o copiado para o Word  
-InserData2Word; ​ 
-end;  
- 
-procedure TForm1.InsertData2Word; ​ 
-var  
-Range: Variant; ​ 
-i: Integer; ​ 
-begin  
-// Inicializando o Word:  
-WordApp:​=CreateOleObject(‘Word. Application’); ​ 
-// Tornando-o visivel: ​ 
-WordApp.Visible:​=True; ​ 
-//​Adicionando um novo documento: ​ 
-WordApp.Documents.Add; ​ 
-{Inserindo descrição para o novo documento:​} ​ 
-Range:​=WordApp.Documents. Item(1).Range; ​ 
-Range.Text:​=‘Esta coluna é da planilha: ‘;  
-for i := 1 to 3 do  
-WordApp.Documents.Item(1).Paragraphs. Add;  
-// Inserting data from clipboard ​ 
-Range := WordApp.Documents.Item(1). Range(WordApp.Documents.Item(1).Paragraphs. Item(3).Range.Start); ​ 
-Range.Paste; ​ 
-for i := 1 to 3 do  
-WordApp.Documents.Item(1).Paragraphs.Add; ​ 
-end;  
-{Não esqueça de fechar o Excel e o Word para terminar:​} ​ 
- 
-procedure TForm1.FormDestroy(Sender:​ TObject); ​ 
-begin  
-if not VarIsEmpty(XLApp) then  
-begin  
-XLApp.DisplayAlerts:​=False; ​ 
-//Descarta arquivos não salvos ​ 
-XLApp.Quit; ​ 
-end;  
-if not VarIsEmpty(WordApp)then ​ 
-begin  
-WordApp.Documents.Item(1).Close (wdDoNotSaveChanges); ​ 
-WordApp.Quit; ​ 
-end;  
-end;  
- 
- 
- 
- 
-1889- Manipulando aquivos do excel  
- 
-No meu sistema eu envio alguns dados para o excel, porém do jeito que aprendi a fazer isto é necessário que eu deixe um arquivo em branco para que no momento de enviar os dados eu o abro e edito para depois salvá-lo com um outro nome qualquer, a questão é: não tem como eu criar este arquivo do excel em tempo de execução? ​ 
- 
-tente assim: ​ 
- 
-procedure ...  
-var Excel: Variant; ​ 
-begin  
-// cria o objeto ​ 
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-// Mostra excel  
-Excel.Visible; ​ 
-// cria um novo Workbook ​ 
-Excel.Workbooks.add; ​ 
-//preenche uma celula ​ 
-Excel.Workbook[1].Sheets[1.Cells[1] := \'​100\'; ​ 
-// salva a planilha ​ 
-Excel.Workbooks[1].SaveAs(\'​Teste.Xls\'​); ​ 
-// sai do excel  
-Excel.Quit ​ 
-end;  
- 
- 
- 
- 
-1981- Trocando informações com o Word e o Excel  
- 
-Para fazer troca de informações com o Word e o Excel usa-se a interface OLE destes aplicativos. É possível fazer praticamente qualquer ação usando-se os métodos disponíveis na VBA (Visual Basic for Applications). ​ 
-É necessário colocar a unit ComObj na cláusula uses da unit.  
-O Exemplo a seguir obtém os dados de uma StringGrid, cria uma planilha Excel, cria novas céluolas calculadas no Excel e transfere o resultado das novas células para uma segunda StringGrid. ​ 
- 
-unit Unit1; ​ 
-interface ​ 
- 
-uses  
-Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ComObj; ​ 
- 
-type  
-TForm1 = class(TForm) ​ 
-StringGrid1:​ TStringGrid; ​ 
-Button1: TButton; ​ 
-StringGrid2:​ TStringGrid; ​ 
-procedure FormCreate(Sender:​ TObject); ​ 
-procedure Button1Click(Sender:​ TObject); ​ 
-private ​ 
-{ Private declarations }  
-public ​ 
-{ Public declarations }  
-end;  
- 
-var  
-Form1: TForm1; ​ 
- 
-implementation ​ 
-{$R *.DFM} ​ 
- 
-procedure TForm1.FormCreate(Sender:​ TObject); ​ 
-begin  
-with StringGrid1 do begin  
-Cells[0,0] := \'​Coluna 1\'; ​ 
-Cells[1,0] := \'​Coluna 2\'; ​ 
-Cells[2,0] := \'​Coluna 3\'; ​ 
-Cells[3,0] := \'​Coluna 4\'; ​ 
-end;  
-end;  
- 
-procedure TForm1.Button1Click(Sender:​ TObject); ​ 
-var  
-Excel : Variant; ​ 
-i,j : Integer; ​ 
-begin  
-// Cria o objeto Application do Excel  
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-// Mostra o Excel  
-Excel.Visible := True;  
-// Cria um novo workbook ​ 
-Excel.WorkBooks.Add; ​ 
-// Preenche as celulas do Excel com od dados da StringGrid ​ 
-for i := 0 to 3 do  
-for j := 0 to 6 do  
-Excel.Workbooks[1].Sheets[1].Cells[j+1,​i+1] := StringGrid1.Cells[i,​j]; ​ 
-// Cria as celulas com as somas  
-Excel.Workbooks[1].Sheets[1].Cells[8,​1] := \'​=sum(a2:​a7)\'; ​ 
-Excel.Workbooks[1].Sheets[1].Cells[8,​2] := \'​=sum(b2:​b7)\'; ​ 
-Excel.Workbooks[1].Sheets[1].Cells[8,​3] := \'​=sum(c2:​c7)\'; ​ 
-Excel.Workbooks[1].Sheets[1].Cells[8,​4] := \'​=sum(d2:​d7)\'; ​ 
-// Transfere as somas do Excel para a segunda StringGrid ​ 
-for i := 0 to 3 do  
-StringGrid2.Cells[i,​0] := Excel.Workbooks[1].Sheets[1].Cells[8,​i+1]; ​ 
-// Salva a planilha ​ 
-Excel.Workbooks[1].SaveAs(\'​teste.xls\'​); ​ 
-// Sai do Excel  
-Excel.Quit; ​ 
-end;  
-end.  
- 
- 
- 
-2176- Como Uso o Excel com OleContainer ​ 
- 
-Preciso de comandos do OleContainer para usar com o Excel  
- 
-Abrir una planilla Excel en un Ole Container. Se debe incluir en el form un OleContainer y un OpenDialog ​ 
- 
-procedure TForm1.FormShow(Sender:​ TObject); ​ 
-var  
-filename: string; ​ 
-continue:​boolean; ​ 
-begin  
-continue := ExcelOpenDialog.Execute(); ​ 
-If continue = TRUE then begin  
-filename := ExcelOpenDialog.Filename; ​ 
-OleContainer1.DestroyObject; ​ 
-OleContainer1.CreateObjectFromFile(filename,​FALSE); ​ 
-OleContainer1.DoVerb(ovShow); ​ 
-end;  
-end;  
- 
- 
- 
- 
-2179- Pegar os dados do excel e gravar em uma tabela ​ 
- 
-Possuo muitas planilhas no excel com varias tabelas de dados, preciso de alguma forma consultar em sql no delphi 5.  
- 
-Você pode pegar os dados do excel e gravar em uma tabela, aqui estão os comentários sobre a procedure: ​ 
- 
-// eu criei esta procedure no onclick do button1 ​ 
-procedure TForm1.Button1Click(Sender:​ TObject); ​ 
-var xx: Integer; // indica a linha do excel  
-Excel: Variant; // indica o excel  
-begin  
-// estou limpando a tabela de clientes ​ 
-tblClientes.Close; ​ 
-tblClientes.EmptyTable; ​ 
-tblClientes.Open; ​ 
-tblClientes.DisableControls; ​ 
-// cria uma \"​ligacao\"​ com o excel  
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-// adivinha para que serve open?  
-Excel.WorkBooks.Open(\'​c:​\\Clientes.xls\'​); ​ 
-// vou comecar pela linha 2, pq na 1 eh o cabecalho ​ 
-xx := 2;  
-while True do begin  
-// estou verificando se a coluna 2 esta vazia (nome), se estiver, fora  
-if Length(Excel.WorkBooks[1].Sheets[1].Cells[xx,​2])= 0 then  
-Break; ​ 
-// adiciono novo registro na tabela ​ 
-tblClientes.Append; ​ 
-tblClientes.Edit; ​ 
-//pego os dados do excel (linha xx, coluna \"​B\"​) ​ 
-tblClientesNome.AsString := AnsiUpperCase(Excel.WorkBooks[1].Sheets[1].Cells[xx,​2]); ​ 
-// linha xx, coluna \"​C\" ​ 
-tblClientesdocum1.AsString := AnsiUpperCase(Excel.WorkBooks[1].Sheets[1].Cells[xx,​3]); ​ 
-// linha xx, coluna 31 (sei la q letra hehehe) ​ 
-tblClientesFone.AsString := AnsiUpperCase(Excel.WorkBooks[1].Sheets[1].Cells[xx,​31]); ​ 
-// passo para a proxima linha do excel  
-Inc(xx); ​ 
-end;  
-// fecho o excel  
-Excel.quit; ​ 
-// habilito os controles de tela  
-tblClientes.EnableControls; ​ 
-ShowMessage(\'​Terminado.\'​); ​ 
-end;  
- 
- 
- 
- 
-Divirta-se com estas dicas retiradas da internet ​ 
- 
-T+  
-Emilio ​ 
- 
- 
- 
-Voltar ao Topo  
-Ver o perfil de Usuários Enviar Mensagem Particular  
- 
-fava 
-Aprendiz 
-Aprendiz 
- 
- 
-Registrado: Quarta-Feira,​ 9 de Julho de 2003 
-Mensagens: 113 
-Localização:​ Curitiba 
-MensagemEnviada:​ Ter Jul 22, 2003 10:59 pm    Assunto: Delphi para Excel Responder com Citação 
-Acho que este exemplo simplifica um pouco.... ​ 
- 
-// Enviar dados para o Excell ​ 
- 
-Procedure TFormCTEmbarque.SpeedButton1Click(Sender:​ TObject); ​ 
-var  
-Excel : Variant; ​ 
-Linha:​Integer; ​ 
-begin  
-Excel := CreateOleObject(\'​Excel.Application\'​); ​ 
-Excel.Visible :​=True; ​ 
-{Excel.Workbooks.Add;​} ​ 
-Excel.WorkBooks.Open(\'​\\\\SERVIDOR\\Cotacao\\Gerar.xls\'​); ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[2,​7]:​=Now; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[3,​2]:​=DMCotacao.TBLiberaRemetente.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[3,​5]:​=DMCotacao.TBLiberaColeta.Value +  
-\'​-\'​ +DMCotacao.TBLiberaUF_Coleta.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[4,​2]:​=DMCotacao.TBLiberaDestinatario.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[4,​5]:​=DMCotacao.TBLiberaDestino.Value +  
-\'​-\'​ +DMCotacao.TBLiberaUF_Destino.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​2]:​=DMCotacao.TBLiberaQuantidade.AsString; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​5]:​=DMCotacao.TBLiberaFreteEmpresa.AsString; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[5,​7]:​=DMCotacao.TBLiberaContrato.AsString; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​2]:​=FormCTEmbarque.Edit2.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​5]:​=FormCTEmbarque.Edit3.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[6,​7]:​=FormCTEmbarque.Edit4.Text; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[7,​2]:​=DMCotacao.TBLiberaObservacao.Value; ​ 
-DmCotacao.QCTEmbarque.Open; ​ 
-Linha:​=10; ​ 
-While not DMCotacao.QCTEmbarque.Eof do  
-Begin  
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​2]:​=DMCotacao.QCTEmbarqueCTRC.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​3]:​=DMCotacao.QCTEmbarqueNotaFiscal.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​4]:​=DMCotacao.QCTEmbarquePeso.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​5]:​=DMCotacao.QCTEmbarquePlaca.Value; ​ 
-Excel.WorkBooks[1].Sheets[1].Cells[Linha,​6]:​=DMCotacao.QCTEmbarqueData.Value; ​ 
-DmCotacao.QCTEmbarque.Next; ​ 
-Linha:​=Linha+1; ​ 
-end;  
-Excel.WorkBooks[1].SaveAs(\'​\\\\SERVIDOR\\Cotacao\\Controle.xls\'​); ​ 
-DMCotacao.TBCotacao.Refresh; ​ 
-end; 
-_________________ 
-[]'​s ​ 
- 
-Paulo Fava 
-Voltar ao Topo  
-Ver o perfil de Usuários Enviar Mensagem Particular  
- 
-labambamogi 
-Aprendiz 
-Aprendiz 
- 
- 
-Registrado: Sexta-Feira,​ 4 de Novembro de 2011 
-Mensagens: 118 
- 
-MensagemEnviada:​ Ter Set 25, 2012 4:45 pm    Assunto:​ Responder com Citação 
-Baseado no exemplo acima, criei o seguinte (basta salva-lo como DBFToExel.dpr. Obs. faz uso do componente TDBF http://​tdbf.sourceforge.net/​): ​ 
- 
-Código: 
- 
-program DBFToExcel; ​ 
- 
-uses  
-  Messages, SysUtils, Variants, Dialogs, ComObj, dbf;  
- 
-procedure GerarExcel(Consulta:​ TDbf; cPath: string); ​ 
-var  
-  coluna, linha: integer; ​ 
-  excel: variant; ​ 
-  valor: string; ​ 
-begin  
-  try  
-    excel := CreateOleObject('​Excel.Application'​); ​ 
-    excel.Workbooks.add(1); ​ 
-  except ​ 
-    ShowMessage('​Erro. Versão do Ms-Excel Incompatível'​); ​ 
-    Exit;  
-  end;  
- 
-  excel.visible := false; ​ 
-  Consulta.First; ​ 
-  try  
-    for linha := 0 to Consulta.RecordCount - 1 do  
-      begin  
-        for coluna := 1 to Consulta.FieldCount do  
-          begin  
-            valor := Consulta.Fields[coluna - 1].AsString; ​ 
-            excel.cells[linha + 2, coluna] := valor; ​ 
-          end;  
-        Consulta.Next; ​ 
-      end;  
-    for coluna := 1 to Consulta.FieldCount do  
-      begin  
-        valor := Consulta.Fields[coluna - 1].DisplayLabel; ​ 
-        excel.cells[1,​ coluna] := valor; ​ 
-      end;  
- 
-    excel.columns.AutoFit; ​ 
-    excel.DisplayAlerts := false; ​    //​Evita pedir a confirmação de sobreposição ​ 
-    //​excel.ActiveWorkbook.SaveAs(cPath+'​Invoice.xls',​ xlnormal, '',​ '',​ False, false); ​ 
-    excel.ActiveWorkbook.SaveAs(cPath+'​Invoice.xls'​); ​ 
- 
-    excel.Quit; ​ 
-    excel := unassigned; ​ 
-  except ​ 
-    excel.WorkBooks.Disconnect;​ //​desconecta sua aplicação do documento aberto no excel. ​ 
-    excel.Application.Disconnect;​ //​desconecta sua aplicação do Excel  
- 
-    ShowMessage('​Aconteceu um erro desconhecido durante a conversão da tabela para o Ms-Excel'​); ​ 
-  end;  
-end;  
- 
- 
-var  
-  i: word;  
-  cPath: string; ​ 
-  Dbf1: TDBF;  
-begin  
-  if ParamCount > 0 then  
-    cPath := ParamStr(1) ​ 
-  else  
-    cPath := ExtractFileDir( ParamStr(0) );  
- 
-  if Copy(cPath,​Length(cPath),​1) <> '​\'​ then  
-    cPath := cPath +'​\'; ​ 
- 
-  try  
-    Dbf1 := TDBF.Create(nil); ​ 
-    Dbf1.TableName := '​Invoice.dbf'; ​ 
-    Dbf1.FilePathFull := cPath; ​ 
-    Dbf1.Active := true;  
-    Dbf1.First; ​ 
- 
-    GerarExcel(dbf1,​ cPath); ​ 
-  except ​ 
-    ShowMessage('​Desculpe-me,​ mas tive problemas p/ abrir o arquivo '​+Dbf1.TableName+'​ e gerar Invoice.xls em '​+cPath); ​ 
-  end;  
- 
-  Dbf1.Active := false; ​ 
- 
-''​ 
excel.txt · Última modificação: 2017/03/24 13:21 por emiliolemos