Eu criei este código para abrir um template da minha área de trabalho e edita-lo através do “find and replace”, após edita-lo eu salvo como um novo arquivo assim posso usa-lo ilimitadamente para criar meu arquivos. Mas preciso de ajuda para colocar o template do documento em uma banco de dados sqlserve, abrir este template que esta no meu banco edita-lo e salvar como outro arquivo no banco de dados. Por favor me ajudem, Estou usando interop.word obg desde já
private void FindAndReplace(Microsoft.Office.Interop.Word.Application wordApp, object findText, object replaceWithText) { object missing = Type.Missing; object matchCase = true; object matchWholeWord = true; object matchWildCards = false; object matchSoundLike = false; object nmatchAllForms = false; object forward = true; object format = false; object matchKashida = false; object matchDiactitics = false; object matchAlefHamza = false; object matchControl = false; object read_only = false; object visible = true; object replace = 2; object wrap = 1; object replaceText = true; if (replaceWithText.ToString().Length < 250) // Normal execution { wordApp.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord, ref matchWildCards, ref matchSoundLike, ref nmatchAllForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace, ref matchKashida, ref matchDiactitics, ref matchAlefHamza, ref matchControl); } else { wordApp.Application.Selection.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); wordApp.Application.Selection.Text = (string)replaceWithText; } } private void CreateWordDocument(object filename, object savaAs) { List<int> processesbeforegen = getRunningProcesses(); object missing = Missing.Value; Word.Application wordApp = new Word.Application(); Word.Document aDoc = null; if (File.Exists((string)filename)) { DateTime today = DateTime.Now; object readOnly = false; object isVisible = false; wordApp.Visible = false; aDoc = wordApp.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); aDoc.Activate(); this.FindAndReplace(wordApp, "<n>", tbPlanoNmr.Text); this.FindAndReplace(wordApp, "<k>", tbPortaria.Text); this.FindAndReplace(wordApp, "<data>", tbData.Text); this.FindAndReplace(wordApp, "PPPPP", tbNomeEtec.Text); this.FindAndReplace(wordApp, "<codigo>", tbCodigoEtec.Text); this.FindAndReplace(wordApp, "<municipio>", tbMunicipioEtec.Text); this.FindAndReplace(wordApp, "<eixo>", tbEixo.Text); this.FindAndReplace(wordApp, "<habilitacao>", tbHabilitacao.Text); this.FindAndReplace(wordApp, "<qualificacao>", tbQualificacao.Text); this.FindAndReplace(wordApp, "<serie>", tbModulo.Text); this.FindAndReplace(wordApp, "<componente>", tbMateria.Text); this.FindAndReplace(wordApp, "<ch>", tbCHS.Text); this.FindAndReplace(wordApp, "<professor>", tbNomeProf.Text); this.FindAndReplace(wordApp, "<modulo>", Session["modulo"].ToString()); foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<VI>"; object replaceText = txtVI.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<VII>"; object replaceText = txtVII.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<X>"; object replaceText = txtX.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (GridViewRow row in GridView1.Rows) { txtDidatico.Text += ((TextBox)row.FindControl("txtProcedimento")).Text; } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<procedimento>"; object replaceText = txtDidatico.Text; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<instrumentos>"; object replaceText = txtInstrumentos.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<criterios>"; object replaceText = txtCriterios.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes1>"; object replaceText = mes1.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes2>"; object replaceText = mes2.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes3>"; object replaceText = mes3.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes4>"; object replaceText = mes4.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes5>"; object replaceText = mes5.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<mes6>"; object replaceText = mes6.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<atribuicoes>"; object replaceText = taAtribuicoes.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<atividades>"; object replaceText = taAtividades.Text; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<competencia_extenso>"; object replaceText = txtCompetenciaExtenso.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<evidencias>"; object replaceText = txtEvidencia.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<habilidades>"; object replaceText = txtHabilidade.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<competencia>"; object replaceText = txtCompetencia.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<base>"; object replaceText = txtBase.InnerText; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (GridViewRow row in GridView1.Rows) { txtHabilidadeP33.Text += ((TextBox)row.FindControl("txtHabilidadeP3")).Text; } foreach (GridViewRow row in GridView1.Rows) { txtBaseP33.Text += ((TextBox)row.FindControl("txtBaseP3")).Text; } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<basenum>"; object replaceText = txtHabilidadeP33.Text; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } foreach (Word.Range tmpRange in aDoc.StoryRanges) { object findText = "<habilidadesnum>"; object replaceText = txtBaseP33.Text; if (tmpRange.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { tmpRange.Select(); wordApp.Selection.Text = replaceText.ToString(); } } this.FindAndReplace(wordApp, "#", "^l"); //this.FindAndReplace(wordApp, "$ $ Date$ $ " DateTime.Now.ToShortDateString()); } else { //Exibir mensagem: "a dose do arquivo não existe" return; } aDoc.SaveAs2(ref savaAs, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); aDoc.Close(ref missing, ref missing, ref missing); List<int> processesaftergen = getRunningProcesses(); killProcesses(processesbeforegen, processesaftergen); } public List<int> getRunningProcesses() { List<int> ProcessIDs = new List<int>(); foreach (Process clsProcess in Process.GetProcesses()) { if (Process.GetCurrentProcess().Id == clsProcess.Id) continue; if (clsProcess.ProcessName.Contains("WINWORD")) { ProcessIDs.Add(clsProcess.Id); } } return ProcessIDs; } private void killProcesses(List<int> processesbeforegen, List<int> processesaftergen) { foreach (int pidafter in processesaftergen) { bool processfound = false; foreach (int pidbefore in processesbeforegen) { if (pidafter == pidbefore) { processfound = true; } } if (processfound == false) { Process clsProcess = Process.GetProcessById(pidafter); clsProcess.Kill(); } } } private void Form1_Load(object sender, EventArgs e) { } private void tEnabled(bool state) { tbNomeProf.Enabled = state; } protected void btnGerarPDF_Click(object sender, EventArgs e) { var Template = "C:/Users/Bird/Desktop/temppp.doc"; var NovoDocumento = "C:/Users/Bird/Desktop/PTD.doc"; tEnabled(true); CreateWordDocument(Template, NovoDocumento); tEnabled(false); } }