Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Exportar Dados


Guest --felipe --

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

procedure TForm1.Button1Click(Sender: TObject);

var

ArquivoSalvar:olevariant; //local e nome para salvar arquivo

s:olevariant; //facilitar trabalho

back : olevariant;

begin

msword := createoleobject('word.application'); //abre aplicativo

msword.documents.add; //adiciona novo documento

if MSWord.ActiveWindow.View.SplitSpecial <> 0 then

MSWord.ActiveWindow.Panes[2].Close;

if (MSWord.ActiveWindow.ActivePane.View.type = 1) or

(MSWord.ActiveWindow.ActivePane.View.type = 2) or

(MSWord.ActiveWindow.ActivePane.View.type = 5) then

MSWord.ActiveWindow.ActivePane.View.type := 3;

s := msword.selection; //variavel para facilitar trabalho

MSWord.ActiveWindow.ActivePane.View.SeekView := 9; //habilita o cabeçalho

s.typetext('Cabeçalho habilitado');

msword.activewindow.activepane.view.seekview := 10; //habilita o rodapé

s.typetext('rodapé habilitado');

msword.activewindow.activepane.view.seekview := 0; //habilita o texto

s.typetext('texto habilitado');

msword.activedocument.PageSetup.Orientation := wdOrientLandscape; //página em landscape

s.Font.Name := 'Times New Roman'; //tipo de letra

s.Font.Size := 12; //tamanho de letra

s.Font.Bold := True; //negrito

s.Font.italic := True; //italico

s.font.Subscript := false; //subescrito

s.font.Superscript := false; //sobrescrito

s.font.Underline := true; //sublinhado

s.font.color := clGreen; //cor da letra

s.paragraphFormat.alignment := wdAlignParagraphJustify; //alinha o texto a esquerda

//esquerda=0, centro=1, direita=2, wdAlignParagraphJustify

s.typetext(#9); //tab

s.typeparagraph;

s.tables.add(s.range,linhas,colunas); //cria tabela i linhas, j colunas

s.tables.item(1).columns.item(2).setwidth(100,wdAdjustNone);

//comprimento da segunda coluna sem modificar a posição do texto

s.tables.item(1).cell(2,3).range.insertAfter('escrito na posição 2,3');

//escreva na posição 2,3

// s.cells.autofit; //alinha conforme coluna

s.tables.item(1).cell(i,j).select; //seleciona celula i,j

s.moveright; //move para direita

s.moveright;

s.typetext('escrito fora da tabela');

//notas de rodapé

// s.footnotes.add(msword.selection.range,emptyparam,'texto');

//notas de cabeçalho

// s.endnotes.add(msword.selection.range,emptyparam,'texto');

//comentário

// s.comments.add(msword.selection.range,'texto');

// s.PageSetup.TopMargin := 10; //margem superior

// s.PageSetup.leftMargin := 100; //margem esquerda

// s.PageSetup.rightMargin := 80; //margem direita

// s.PageSetup.BottomMargin := 60; //magem abaixo

msword.application.visible :=true; //mantem visivel o documento word

ArquivoSalvar := 'c:\teste.doc';

MSWORD.ActiveDocument.SaveAs(arquivosalvar); //salva sem perguntar

// msword.documents.save; //abre janela para salvar

// msword.ActiveDocument.PrintOut(false); //imprime direto, sem perguntar

// msword.ActiveDocument.PrintPreview; //vizualizar impressão

// msword.Quit; // finaliza aplicação

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
procedure TForm1.Button1Click(Sender: TObject);

var

ArquivoSalvar:olevariant; //local e nome para salvar arquivo

s:olevariant; //facilitar trabalho

back : olevariant;

begin

msword := createoleobject('word.application'); //abre aplicativo

msword.documents.add; //adiciona novo documento

if MSWord.ActiveWindow.View.SplitSpecial <> 0 then

MSWord.ActiveWindow.Panes[2].Close;

if (MSWord.ActiveWindow.ActivePane.View.type = 1) or

(MSWord.ActiveWindow.ActivePane.View.type = 2) or

(MSWord.ActiveWindow.ActivePane.View.type = 5) then

MSWord.ActiveWindow.ActivePane.View.type := 3;

s := msword.selection; //variavel para facilitar trabalho

MSWord.ActiveWindow.ActivePane.View.SeekView := 9; //habilita o cabeçalho

s.typetext('Cabeçalho habilitado');

msword.activewindow.activepane.view.seekview := 10; //habilita o rodapé

s.typetext('rodapé habilitado');

msword.activewindow.activepane.view.seekview := 0; //habilita o texto

s.typetext('texto habilitado');

msword.activedocument.PageSetup.Orientation := wdOrientLandscape; //página em landscape

s.Font.Name := 'Times New Roman'; //tipo de letra

s.Font.Size := 12; //tamanho de letra

s.Font.Bold := True; //negrito

s.Font.italic := True; //italico

s.font.Subscript := false; //subescrito

s.font.Superscript := false; //sobrescrito

s.font.Underline := true; //sublinhado

s.font.color := clGreen; //cor da letra

s.paragraphFormat.alignment := wdAlignParagraphJustify; //alinha o texto a esquerda

//esquerda=0, centro=1, direita=2, wdAlignParagraphJustify

s.typetext(#9); //tab

s.typeparagraph;

s.tables.add(s.range,linhas,colunas); //cria tabela i linhas, j colunas

s.tables.item(1).columns.item(2).setwidth(100,wdAdjustNone);

//comprimento da segunda coluna sem modificar a posição do texto

s.tables.item(1).cell(2,3).range.insertAfter('escrito na posição 2,3');

//escreva na posição 2,3

// s.cells.autofit; //alinha conforme coluna

s.tables.item(1).cell(i,j).select; //seleciona celula i,j

s.moveright; //move para direita

s.moveright;

s.typetext('escrito fora da tabela');

//notas de rodapé

// s.footnotes.add(msword.selection.range,emptyparam,'texto');

//notas de cabeçalho

// s.endnotes.add(msword.selection.range,emptyparam,'texto');

//comentário

// s.comments.add(msword.selection.range,'texto');

// s.PageSetup.TopMargin := 10; //margem superior

// s.PageSetup.leftMargin := 100; //margem esquerda

// s.PageSetup.rightMargin := 80; //margem direita

// s.PageSetup.BottomMargin := 60; //magem abaixo

msword.application.visible :=true; //mantem visivel o documento word

ArquivoSalvar := 'c:\teste.doc';

MSWORD.ActiveDocument.SaveAs(arquivosalvar); //salva sem perguntar

// msword.documents.save; //abre janela para salvar

// msword.ActiveDocument.PrintOut(false); //imprime direto, sem perguntar

// msword.ActiveDocument.PrintPreview; //vizualizar impressão

// msword.Quit; // finaliza aplicação

mas e pra botar os dados da query??

seria mais pratico se eu conseguisse apenas copiar a tabela de um DBGRID, para o excel ou word

esse é meu objetivo saco??

valeu a ajuda ai

Jesus te abençoe

uheuiuheiu

Link para o comentário
Compartilhar em outros sites

  • 0

felipe, na sessão Tutoriais & Dicas tem um exemplo do colega Alessandro - Exportar dados de um DBGrid para o Excel

O exemplo do colega Jesus faz algo similar, mas criando uma tabela no Word e deve funcionar corretamente. Você teria que seguir o código e ajustar as informações conforme necessita - tipo número de colunas e linhas (no código está: s.tables.add(s.range,linhas,colunas); //cria tabela i linhas, j colunas, você tem que definir os valores) - e daís mover os dados conforme a necessidade.

As linhas do seu DBGrid, são na verdade aquelas disponíveis em seu dataset (seja Query ou Table) e as colunas os campos (fields) presentes no DBGrid (nem sempre todos os existentes no dataset). Assim, basta percorrer, para cada linha do dataset, as colunas no DBGrid.

Se for apenas para implementar um recurso de Copiar do DBGrid da sua aplicação, para depois "ir" até o Word ou Excel e utilizar a opção Colar, então acho que você pode utilizar este código que postei na seção Tutoriais & Dicas - Adicionando Função Copiar Dados De Um Dbgrid Em Sua Aplicação

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
felipe, na sessão Tutoriais & Dicas tem um exemplo do colega Alessandro - Exportar dados de um DBGrid para o Excel

O exemplo do colega Jesus faz algo similar, mas criando uma tabela no Word e deve funcionar corretamente. Você teria que seguir o código e ajustar as informações conforme necessita - tipo número de colunas e linhas (no código está: s.tables.add(s.range,linhas,colunas); //cria tabela i linhas, j colunas, você tem que definir os valores) - e daís mover os dados conforme a necessidade.

As linhas do seu DBGrid, são na verdade aquelas disponíveis em seu dataset (seja Query ou Table) e as colunas os campos (fields) presentes no DBGrid (nem sempre todos os existentes no dataset). Assim, basta percorrer, para cada linha do dataset, as colunas no DBGrid.

Se for apenas para implementar um recurso de Copiar do DBGrid da sua aplicação, para depois "ir" até o Word ou Excel e utilizar a opção Colar, então acho que você pode utilizar este código que postei na seção Tutoriais & Dicas - Adicionando Função Copiar Dados De Um Dbgrid Em Sua Aplicação

Abraços

beleza, consegui :)

valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...