0% acharam este documento útil (0 voto)
387 visualizações4 páginas

Delphi Exportar para Excel

Este documento fornece instruções para preencher uma planilha do Excel dinamicamente usando Delphi. Ele mostra como adicionar linhas e colunas, formatar células, inserir gráficos e fórmulas e salvar a planilha.

Enviado por

rogeriokta
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
387 visualizações4 páginas

Delphi Exportar para Excel

Este documento fornece instruções para preencher uma planilha do Excel dinamicamente usando Delphi. Ele mostra como adicionar linhas e colunas, formatar células, inserir gráficos e fórmulas e salvar a planilha.

Enviado por

rogeriokta
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 4

//S vou melhorar um pouco as dicas que tem aqui.. faam bom proveito dela. procedure TForm1.

Button1Click(Sender: TObject); var objExcel,Sheet,Chart,s : Variant; cTitulo : string; i : integer; begin //OBS: Voce deve usar a Clausula ComObj no USES para usar o EXCEL // Utilize tambm a Clausula Clipbrd pois neste exemplo faremos uso da memria // Cria uma instancia para utilizar o Excel cTitulo := 'Planilha de Teste'; objExcel := CreateOleObject('Excel.Application'); objExcel.Visible := True; objExcel.Caption := cTitulo; // Caso queria abrir uma planilha ao invz de gera-la use os comandos abaixo //objExcel.Workbooks.Open('c:teste.xls'); //Sheet := objExcel.Workbooks[1].WorkSheets[cTitulo]; // Daqui em diante os comandos na Planilha so os mesmos do resto do Exemplo //Sheet.Range['A1','Z70'].Replace('Nome','Alterado'); // Adiciona planilha(sheet) objExcel.Workbooks.Add; objExcel.Workbooks[1].Sheets.Add; objExcel.Workbooks[1].WorkSheets[1].Name := cTitulo; Sheet := objExcel.Workbooks[1].WorkSheets[cTitulo]; // possivel copiar um valor da memria diretamente para a planilha // mas como no se tem controle de onde ele ser colado, este processo pode // ser meio inconveniente //Clipboard.AsText := 'Linha Copiada para Memria'; //Sheet.paste; // Nota: // Pode-se preencher as linhas usando o comando abaixo, desta forma vc usaria // a planilha como se ela fosse uma Array, em alguns casos pode ser interessante // mas no geral considero bem mais trabalhoso, abaixo demonstro outra forma de t rabalho // usando o RANGE que torna o trabalho bem mais simples //Sheet.Cells[1,1] := 'Coluna[1,1]'; // Preenchendo as Colunas // Usando o RANGE vc pode preencher vrias colunas ao mesmo tempo usando ['A1','A1 0'] // Ou preencher apenas uma usando ['A1'], isso torna o processo gil e simples Sheet.Range['A1'] := 'Cdigo'; Sheet.Range['B1'] := 'Nome'; Sheet.Range['C1'] := 'Fone'; Sheet.Range['D1'] := 'Salrio'; // por aqui tu limparias a planilha // No caso do FOR se torna interessante usar o SHEET.CELLS (veja como) // Atente que usei o FOR a partir do numero 2 desta forma pularemos a // primeira linha que ja contem um cabealho preenchido acima for i := 2 to 10 do begin Sheet.Cells[i,1] := i;

Sheet.Cells[i,2] := 'Nome Cliente '+inttostr(i); Sheet.Cells[i,3] := 'Fone Cliente '+inttostr(i); // Formata o Numero para se tornar MOEDA Sheet.Cells[i,4].NumberFormat := 'R$ #.##0,00_);(R$ #.##0,00)'; Sheet.Cells[i,4] := 1000*i; end; // Formatando o Cabealho Sheet.Range['A1','D1'].font.name := 'Verdana'; // Fonte Sheet.Range['A1','D1'].font.size := 12; // Tamanho da Fonte Sheet.Range['A1','D1'].font.bold := true; // Negrito Sheet.Range['A1','D1'].font.italic := true; // Italico Sheet.Range['A1','D1'].font.color := clYellow; // Cor da Fonte Sheet.Range['A1','D1'].Interior.Color := $00ffcf9c; // Cor da Clula // Define o tamanho das Colunas (basta fazer em uma delas e as demais sero altera das) Sheet.Range['B1','C1' ].ColumnWidth := 27; Sheet.Range['B1','C1' ].RowHeight := 25; Sheet.Range['D1'] .ColumnWidth := 16; // Outras formas de Formatar Sheet.Range['E1'] := 'Subscrito'; Sheet.Range['E2'] := 'Superescrito'; Sheet.Range['E3'] := 'Sublinhado'; Sheet.Range['E4'] := 'Strike'; Sheet.Range['E1'].font.Subscript := true; // Subscrito Sheet.Range['E2'].font.Superscript := true; // Superescrito Sheet.Range['E3'].font.Underline := true; // Sublinhado Sheet.Range['E4'].font.Strikethrough := true; // Strike // Colocando a Borda em um unico lado da Clula Sheet.Range['E5'].Font.size := 7; Sheet.Range['E5'].ColumnWidth := 20; Sheet.Range['E5'] := 'S um lado da Celula com Borda'; Sheet.Range['E5'].Borders.Item[$00000009].Weight := $FFFFEFD6; Sheet.Range['E5'].Borders.Item[$00000009].Color := clRed; //-- Espessura da Linha //======================== {xlHairline = $00000001; xlMedium = $FFFFEFD6; xlThick = $00000004; xlThin = $00000002;} //-- Posio da Celula que se deseja colocar a Borda //===================================================== {xlInsideHorizontal = $0000000C; xlInsideVertical = $0000000B; xlDiagonalDown = $00000005; xlDiagonalUp = $00000006; xlEdgeBottom = $00000009; xlEdgeLeft = $00000007; xlEdgeRight = $0000000A; 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'); end;

Você também pode gostar