open documentformat descargar create c# ms-word openxml openxml-sdk

c# - documentformat - openxml sdk create excel document



Lectura del archivo.Doc con DocumentFormat.OpenXml dll (4)

Los viejos archivos .doc tienen un formato completamente diferente de los nuevos archivos .docx. Entonces, no, no puede usar la biblioteca OpenXml para leer archivos .doc.

Para hacerlo, primero deberá convertir manualmente los archivos, o deberá usar la interoperabilidad de Office, en lugar del Open XML SDK que está utilizando ahora.

Cuando intento leer un archivo .doc usando DocumentFormat.OpenXml dll, aparece el error "El archivo contiene datos dañados".

Este dll está leyendo el archivo .docx correctamente.

¿Puede DocumentFormat.OpenXml dll ayudar en la lectura del archivo .doc?

string path = @"D:/Data/Test.doc"; string searchKeyWord = @"java"; private bool SearchWordIsMatched(string path, string searchKeyWord) { try { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(path, true)) { var text = wordDoc.MainDocumentPart.Document.InnerText; if (text.Contains(searchKeyWord)) return true; else return false; } } catch (Exception ex) { throw ex; } }


.doc (si se creó con una versión anterior de Microsoft Word ) no tiene la misma estructura que un .docx (que básicamente es un archivo zip con algunos documentos XML).

Si su .doc es "descomprimible" (simplemente cambie el nombre de la extensión .doc a .zip ) para sondear, tendrá que convertir manualmente el .doc a .docx .


Me temo que no habrá una respuesta mejor que las ya dadas. El formato Microsoft Word DOC es binario, mientras que los formatos OpenXML como DOCX son archivos XML comprimidos. El framework OpenXml es para trabajar solo con este último.

Como se sugirió, la única otra opción que tiene es usar Word interop o una biblioteca de terceros para convertir DOC -> DOCX, que luego puede trabajar con la biblioteca OpenXml.