lunes, 15 de febrero de 2010

Guardar Word en txt, xml y más

Bien, el problema a solucionar, es cuando tenemos (o recibimos) un documento en un formato, y lo que queremos obtener, mostrar o tratar es un documento en un formato distinto, bien pues vamos a ver un código sencillo y explicado que haría esto en pocos pasos optimamente:
1º Sería interesante que le hechárais un vistazo al anterior post, para ver interactuar bien con las herramientas en c# para MicrosoftWord.

//A la función se le pasa como parámetros el Path del documento existente y el que queremos tener, y devolvemos un entero para gestión de errores.

public int saveWordAsTxt(string inputWord, string outputTxt)
{
int result = -1;
//comprobamos que esté abierto el Word y que exista el documento de entrada
if (this.openApp && File.Exists(inputWord))
{
object oRuta = inputWord;
object readOnly = false;
object isVisible = true;
try
{
//Abrimos el documento
oWordDoc = oWord.Documents.Open(ref oRuta, ref readOnly, ref readOnly, ref oNulo, ref oNulo,
ref oNulo, ref oNulo, ref oNulo, ref oNulo, ref oNulo, ref oNulo, ref readOnly,
ref oNulo, ref oNulo, ref isVisible, ref oNulo);
//Ahora preparamos las opciones del documento que queremos tener
object fileName = outputTxt;
object fileFormat = Word.WdSaveFormat.wdFormatText;
//Importante, al poner wdFormatText es cuando le decimos el formato, en este caso .txt
object encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
object lineEnding = Word.WdLineEndingType.wdCRLF;
//Salvar el documento con las opciones que le hemos dicho.
oWordDoc.SaveAs(ref fileName, ref fileFormat, ref oNulo, ref oNulo, ref oNulo, ref oNulo,
ref oNulo, ref oNulo, ref oNulo, ref oNulo, ref oNulo, ref encoding, ref oNulo,
ref oNulo, ref lineEnding, ref oNulo);
}
catch(Exception e)
{
//Manejo de excepciones, lo correcto sería capturarla.
}
finally
{
//Asegurarse de cerrar el documento pase lo que pase
object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
if (this.oWordDoc != null)
this.oWordDoc.Close(ref doNotSaveChanges, ref oNulo, ref oNulo);
}
}
return result;
}

Y hasta aquí el método, ahora dejo un enlace donde hay una tabla con todas las opciones con sus correspondientes formatos:

No hay comentarios:

Publicar un comentario