none
LER texto do word no windows form application RRS feed

  • Pergunta

  • Olá pessoal,

    Estou desenvolvendo uma aplicação no windows forms, e eu gostaria de LER uma arquivo .DOC dentro de um RichTextBox, mais precisamente... eu gostaria que o richtext mostra-se apenas as linhas 10 à 20 do documento word. Mesmo que vocês não saibam tão precisamente assim me ajudem por favor.

    Obrigado! 

    terça-feira, 16 de abril de 2013 14:23

Respostas

  • Prezado pode ser feito da seguinte maneira:

                var word = new Microsoft.Office.Interop.Word.Application();
                object miss = System.Reflection.Missing.Value;
                object path = @"Caminho do seu doc word";
                object readOnly = true;
                var docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
                string totaltext = "";
                for (int i = 10; i < 20; i++)
                {
                    richTextBox1.Text += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString();
                }
                docs.Close();
                word.Quit();

    Não se esqueça de adicionar a referencia para o:

    Microsoft.Office.Interop.Word


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta vimcruz quinta-feira, 18 de abril de 2013 13:34
    quarta-feira, 17 de abril de 2013 13:58
  • Por isso o erro está ocorrendo, pois no for percorro o índice de 10 a 20... Diminua os índices ou insira mais linhas no doc word, ou seja, configure de acordo com seu projeto.

     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta vimcruz quinta-feira, 18 de abril de 2013 13:34
    quinta-feira, 18 de abril de 2013 13:31
  • consegui galera, segue o código:

    var word = new Microsoft.Office.Interop.Word.Application();
    object miss = System.Reflection.Missing.Value;
    object path = @"caminho do arquivo";
    object readOnly = false;
    var docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss,  ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
    string totaltext = "";

    richtext.Text += docs.Bookmarks["nome do indicador"].Range.Text.ToString();

    docs.Close();
    word.Quit();

    • Marcado como Resposta vimcruz quinta-feira, 29 de agosto de 2013 17:56
    quinta-feira, 29 de agosto de 2013 17:55

Todas as Respostas

  • Prezado pode ser feito da seguinte maneira:

                var word = new Microsoft.Office.Interop.Word.Application();
                object miss = System.Reflection.Missing.Value;
                object path = @"Caminho do seu doc word";
                object readOnly = true;
                var docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
                string totaltext = "";
                for (int i = 10; i < 20; i++)
                {
                    richTextBox1.Text += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString();
                }
                docs.Close();
                word.Quit();

    Não se esqueça de adicionar a referencia para o:

    Microsoft.Office.Interop.Word


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta vimcruz quinta-feira, 18 de abril de 2013 13:34
    quarta-feira, 17 de abril de 2013 13:58
  • Após inserir a referencia e o código, pus também um try catch, para saber o erro que possivelmente iria dar, e o erro foi o seguinte: 

    "Erro: O membro solicitado da coleção não existe "

    Alguma solução?

    Grato!!

    quinta-feira, 18 de abril de 2013 12:38
  • O documento do Word possui mais de 21 linhas?


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    quinta-feira, 18 de abril de 2013 12:43
  • O word que eu tenho de teste tem 8 linhas.
    quinta-feira, 18 de abril de 2013 12:48
  • Por isso o erro está ocorrendo, pois no for percorro o índice de 10 a 20... Diminua os índices ou insira mais linhas no doc word, ou seja, configure de acordo com seu projeto.

     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta vimcruz quinta-feira, 18 de abril de 2013 13:34
    quinta-feira, 18 de abril de 2013 13:31
  • Teria forma, invés de retornar um paragrafo, retornar um indicador(bookmark) do word? Como seria?
    terça-feira, 27 de agosto de 2013 13:20
  • consegui galera, segue o código:

    var word = new Microsoft.Office.Interop.Word.Application();
    object miss = System.Reflection.Missing.Value;
    object path = @"caminho do arquivo";
    object readOnly = false;
    var docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss,  ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
    string totaltext = "";

    richtext.Text += docs.Bookmarks["nome do indicador"].Range.Text.ToString();

    docs.Close();
    word.Quit();

    • Marcado como Resposta vimcruz quinta-feira, 29 de agosto de 2013 17:56
    quinta-feira, 29 de agosto de 2013 17:55