2008-10-18 141 views
6

¿Cómo se cargan documento de MS Word (.doc y .docx) a la memoria (variable) sin hacer esto ?:¿Cómo cargar el texto del documento de MS Word en C# (.NET)?

wordApp.Documents.Open

no quiero abrir MS Word , Solo quiero ese texto adentro.

Me diste una respuesta para DOCX, pero ¿qué tal DOC? Quiero una solución gratuita y de alto rendimiento, no para abrir 12.000 instancias de Word para procesarlas todas. :(Aspose es producto comercial, y 900 $ es demasiado para lo que hago.

Respuesta

4

Puede usar wordconv.exe que es parte del Paquete de compatibilidad de Office para convertir de doc a docx.

http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Sólo tiene que llamar el comando de esta forma: "C: \ Archivos de programa \ Microsoft Office \ Office12 \ wordconv.exe" -oice -NMe InputFile OutputFile

No estoy seguro de si necesita palabra instalada para que se ejecute, pero funciona. Lo uso localmente como un comando de shell de Windows para convertir archivos antiguos de Office a formato 2007 cuando lo desee.

2

Para docx documentos de Word con formato encontré este interesante artículo sobre el CodeProject

Using DocxToText to Extract Text from DOCX Files

En el artículo, el autor explica cómo eliminar solo las palabras.

Para documentos de Word (no docx) que no sean el uso de las API de Office y (en segundo plano) generando una instancia de Word, puede probar el descascaramiento de uno de los muchos convertidores Doc2Docx del mercado y luego aplicar el proceso anterior para ambos.

+0

¿Hay alguna conexión doc a la solución docx? – Skuta

-1

No me refiero a ser un antagonista, pero ¿por qué?

He extraído datos de documentos de Word en servidores Linux utilizando Word2X o AbiWord y, dependiendo del número y la variedad de documentos, siempre habrá errores con la extracción. Es peor cuanto más viñetas, saltos de página, secciones de documentos y otras características "especiales" hay.

Entiendo que hay opciones ahora para automatizar OpenOffice para procesar documentos, pero mi consejo es, si puede, simplemente usar Word para procesar documentos de Word.

+0

Si quiero procesar documentos de 12.000 palabras todos los días ... Adivina por qué no quiero abrir 12000 instancias de Word ... – Skuta

1

Recientemente realicé algunas investigaciones sobre este tema. Resulta que para poder manipular archivos de palabras de forma programática sin abrir la palabra en sí, se necesitan algunas herramientas muy costosas.

Existe un articulo al code project on manipulating Word, puede que le sea útil. El autor crea un contenedor COM de C# para tratar las llamadas a Word. Parece que realmente abre la aplicación de palabras.

This post over at the neowin forums parece prometedor también. Incluye bastantes llamadas PInvoked para extraer texto.

Tal vez si pudiera encontrar la manera de mantener la ventana oculta, sería aceptable.

0

Aspose tiene un componente para leer, modificar y escribir documentos de Word. Aquí está el enlace del producto: Aspose.Words for .NET and Java

Aspose.Words permite.NET y Java aplicaciones para leer, modificar y escribir documentos de Word® sin utilizar Microsoft Word®. Aspose.Words apoya una amplia gama de características que incluyen creación de documentos, el contenido y el formato manipulación, potente electrónico combinar habilidades, apoyo integral de DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument y PDF. Aspose.Words es realmente el componente de Word más asequible, más rápido y más rico en características en el mercado.

+0

biblioteca gratuita, -> Aspose: US $ 899 – Skuta

0

Con docxtemplater, puede obtener fácilmente el texto completo de una palabra (solo funciona con docx).

Aquí está el código (Node.JS)

DocxTemplater=require('docxtemplater'); doc=new DocxTemplater().loadFromFile("input.docx"); result=doc.getFullText();

Ésta es sólo tres líneas de código y no depende de ninguna instancia palabra (todo llano JS)

Cuestiones relacionadas