Rubiz Gardini Postado Março 3, 2009 Denunciar Share Postado Março 3, 2009 Olá pessoal, td bem com vocês?Precisei trabalhar com o VS 2008, .Net 2.0, junto com o Word (Office 2003) para substituir certas palavras em um arquivo Word.Meu código está assim://namespaces using Microsoft.Office.Core; using Word = Microsoft.Office.Interop.Word; using System.ComponentModel; using System.Drawing; protected void btn_contrato_Click(object sender, EventArgs e) { object missing = System.Reflection.Missing.Value; //Abre a aplicação Word e faz uma cópia do documento mapeado Word.Application oApp = new Word.Application(); object template = Page.MapPath("~/Page/_Contratos/Teste.doc"); Word.Document oDoc = oApp.Documents.Add(ref template, ref missing, ref missing, ref missing); this.Substitui(oDoc, "@Nome", "William"); this.Substitui(oDoc, "@Sobrenome", "Crudeli"); this.Substitui(oDoc, "@Idade", "40 e alguma coisa"); oApp.PrintOut(); } protected void Substitui(Word.Document oDoc, object parametro, object texto) { object missing = System.Reflection.Missing.Value; //Troca o conteúdo de alguns tags Word.Range oRng = oDoc.Range(ref missing, ref missing); object FindText = parametro; object ReplaceWith = texto; object MatchWholeWord = true; object Forward = false; oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward, ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing); }O que esou precisando agora, é dar um "Salvar como" nesse Word que está aberto e sendo usado, para um sub diretório dentro da pasta onde ele estáNão estou achando informação na internet de como fazer isso, alguém sabe como fazer isso?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Março 3, 2009 Denunciar Share Postado Março 3, 2009 A sua variável oDoc tem o método SaveAs. De uma olhada.Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rubiz Gardini Postado Março 3, 2009 Autor Denunciar Share Postado Março 3, 2009 Eu encontrei mesmo quintelab, mas tem umas coisinhas pequenas q tive q perder muito tempo pra sacar sozinha.No fim esse link me ajudou muito:protected void btn_contrato_Click(object sender, EventArgs e) { object missing = System.Reflection.Missing.Value; //Abre a aplicação Word e faz uma cópia do documento mapeado Word.Application oApp = new Word.Application(); object template = Page.MapPath("~/Page/_Contratos/Teste.doc"); Word.Document oDoc = oApp.Documents.Add(ref template, ref missing, ref missing, ref missing); this.Substitui(oDoc, "@Nome", "William"); this.Substitui(oDoc, "@Sobrenome", "Crudeli"); this.Substitui(oDoc, "@Idade", "40 e alguma coisa"); this.SalvarDocumento(oDoc); this.ImprimirDocumento(oApp, oDoc); } protected void Substitui(Word.Document oDoc, object parametro, object texto) { object missing = System.Reflection.Missing.Value; //Troca o conteúdo de alguns tags Word.Range oRng = oDoc.Range(ref missing, ref missing); object FindText = parametro; object ReplaceWith = texto; object MatchWholeWord = true; object Forward = false; oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward, ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing); } private void SalvarDocumento(Word.Document oDoc) { object missing = System.Reflection.Missing.Value; object FileName = Page.MapPath("~/Page/_Contratos/Gerados/Teste3.doc"); object FileFormat = Word.WdSaveFormat.wdFormatDocument; object LockComments = false; object AddToRecentFiles = true; object ReadOnlyRecommended = false; object EmbedTrueTypeFonts = false; object SaveNativePictureFormat = true; object SaveFormsData = true; object SaveAsAOCELetter = false; object Encoding = missing; object InsertLineBreaks = false; object AllowSubstitutions = true; object LineEnding = Word.WdLineEndingType.wdCRLF; object AddBiDiMarks = false; try { oDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments, ref missing, ref AddToRecentFiles, ref missing, ref ReadOnlyRecommended, ref EmbedTrueTypeFonts, ref SaveNativePictureFormat, ref SaveFormsData, ref SaveAsAOCELetter, ref Encoding, ref InsertLineBreaks, ref AllowSubstitutions, ref LineEnding, ref AddBiDiMarks); } catch { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('O documento não pode ser salvo.');", true); } } private void ImprimirDocumento(Word.Application oApp, Word.Document oDoc) { object missing = System.Reflection.Missing.Value; object wdPrintAllDocument = Word.WdPrintOutRange.wdPrintAllDocument; object wdPrintAutoTextEntries = Word.WdPrintOutItem.wdPrintDocumentContent; object wdPrintAllPages = Word.WdPrintOutPages.wdPrintAllPages; try { oApp.PrintOut(ref missing, ref missing, ref wdPrintAllDocument, ref missing, ref missing, ref missing, ref wdPrintAutoTextEntries, ref missing, ref missing, ref wdPrintAllPages, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } catch { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Houve algum erro na impressão.');", true); } finally { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Impressão feita com sucesso!');", true); } }Código todo:protected void btn_contrato_Click(object sender, EventArgs e) { object missing = System.Reflection.Missing.Value; //Abre a aplicação Word e faz uma cópia do documento mapeado Word.Application oApp = new Word.Application(); object template = Page.MapPath("~/Page/_Contratos/Teste.doc"); Word.Document oDoc = oApp.Documents.Add(ref template, ref missing, ref missing, ref missing); this.Substitui(oDoc, "@Nome", "William"); this.Substitui(oDoc, "@Sobrenome", "Crudeli"); this.Substitui(oDoc, "@Idade", "40 e alguma coisa"); this.SalvarDocumento(oDoc); this.ImprimirDocumento(oApp, oDoc); } protected void Substitui(Word.Document oDoc, object parametro, object texto) { object missing = System.Reflection.Missing.Value; //Troca o conteúdo de alguns tags Word.Range oRng = oDoc.Range(ref missing, ref missing); object FindText = parametro; object ReplaceWith = texto; object MatchWholeWord = true; object Forward = false; oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward, ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing); } private void SalvarDocumento(Word.Document oDoc) { object missing = System.Reflection.Missing.Value; object FileName = Page.MapPath("~/Page/_Contratos/Gerados/Teste3.doc"); object FileFormat = Word.WdSaveFormat.wdFormatDocument; object LockComments = false; object AddToRecentFiles = true; object ReadOnlyRecommended = false; object EmbedTrueTypeFonts = false; object SaveNativePictureFormat = true; object SaveFormsData = true; object SaveAsAOCELetter = false; object Encoding = missing; object InsertLineBreaks = false; object AllowSubstitutions = true; object LineEnding = Word.WdLineEndingType.wdCRLF; object AddBiDiMarks = false; try { oDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments, ref missing, ref AddToRecentFiles, ref missing, ref ReadOnlyRecommended, ref EmbedTrueTypeFonts, ref SaveNativePictureFormat, ref SaveFormsData, ref SaveAsAOCELetter, ref Encoding, ref InsertLineBreaks, ref AllowSubstitutions, ref LineEnding, ref AddBiDiMarks); } catch { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('O documento não pode ser salvo.');", true); } } private void ImprimirDocumento(Word.Application oApp, Word.Document oDoc) { object missing = System.Reflection.Missing.Value; object wdPrintAllDocument = Word.WdPrintOutRange.wdPrintAllDocument; object wdPrintAutoTextEntries = Word.WdPrintOutItem.wdPrintDocumentContent; object wdPrintAllPages = Word.WdPrintOutPages.wdPrintAllPages; try { oApp.PrintOut(ref missing, ref missing, ref wdPrintAllDocument, ref missing, ref missing, ref missing, ref wdPrintAutoTextEntries, ref missing, ref missing, ref wdPrintAllPages, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } catch { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Houve algum erro na impressão.');", true); } finally { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Impressão feita com sucesso!');", true); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Março 3, 2009 Denunciar Share Postado Março 3, 2009 Acho que no lugar do link postou o código. E acabou postando o código duas vezes.Problema resolvido?Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rubiz Gardini
Olá pessoal, td bem com vocês?
Precisei trabalhar com o VS 2008, .Net 2.0, junto com o Word (Office 2003) para substituir certas palavras em um arquivo Word.
Meu código está assim:
O que esou precisando agora, é dar um "Salvar como" nesse Word que está aberto e sendo usado, para um sub diretório dentro da pasta onde ele está
Não estou achando informação na internet de como fazer isso, alguém sabe como fazer isso??
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.