Una vez que hemos encontrado la parte del documento que contiene el texto o el formato que buscábamos, ahora vamos a ver cómo modificar ese rango del documento, y guardar los cambios realizados.
Modificar:
Trabajando con lo anterior por ejemplo, podriamos quirtale el fondo a la palabra anteriormente encontrada:
//Color por defecto de fondo en los documentos.
auto = Microsoft.Office.Interop.Word.WdColorIndex.wdAuto;
rngC.SetRange(inicio, final);
rngC.Select();
rng.HighlightColorIndex = auto;
Guardar cambios :
Se guarda en un nuevo documento con ruta y nombre pasado como parámetro al método SaveAs(...)
Se puede sobreescribir con el método Save(...), pero saldrá la ventanita típica de la aplicación pidiéndonos el nombre, y si ponemos el mismo no preguntará si queremos sobreescribir.
object FileNamea = outputFile;
object FileFormata = Word.WdSaveFormat.wdFormatDocument;
object no = false;
object AddToRecentFilesa = true;
object SaveNativePictureFormata = true;
object Encodinga = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
object LineEndinga = Word.WdLineEndingType.wdCRLF;
oWordDoc.SaveAs(ref FileNamea, ref FileFormata, ref no, ref oNulo, ref AddToRecentFilesa, ref oNulo, ref no, ref no, ref SaveNativePictureFormata, ref oNulo,
ref no, ref Encodinga, ref no,ref no, ref LineEndinga, ref no);
Cerrar:
Importante acordarse siempre de cerrar el documento y la aplicación antes de terminar nuestro programa.
object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
object saveChanges = Word.WdSaveOptions.wdSaveChanges;
oWordDoc.Close(ref doNotSaveChanges, ref oNulo, ref oNulo);
Tambien os pongo algun consejo de mi experiencia personal que os facilitaran las cosas:
Abrir y cerrar sólo una vez la aplicación, puesto que esto tarda un poco y relentiza la ejecución de tu programa.
A la hora de realizar búsquedas, utilizar siempre el método .Find.Execute(...), es el más eficaz y eficiente comparado con otro hecho manual.
Para recorrer los documentos, prestar especial atención a los valores de los rangos y a las marcas asignadas, asi como recorrerlo una única vez, y acotando al máximo los rangos.
oWord.Quit(ref doNotSaveChanges, ref oNulo, ref oNulo);
No hay comentarios:
Publicar un comentario