Leer datos de .doc o .docx y la inserción en dB
Pregunta
Un vendedor está proporcionando contenido que debe ser insertado en el db. El contenido es básicamente preguntas con opciones y explicaciones. Un ejemplo es a continuación.
=========================================
1) ¿Cuál es la capital de Reino Unido?
1] Londres 2] Paris 3] Berlín 4] Edimburgo
Solución: soso
Respuesta: Opción 1
==========================================
Hay cientos de preguntas en el formato anterior y el vendedor se lo suministran en un formato .doc o .docx. Todas estas preguntas necesitan ser entrado en la base de datos y no tengo para automatizar el proceso para que los datos se leen de la palabra doc y entró en dB.
¿Cuál es la mejor manera de hacerlo? Yo prefiero usar C # y ya tengo código al cual toma los objetos personalizados y lo inserta en los cuadros correspondientes. Ahora todo lo que quiero es leer el documento de Word y poblar esos objetos. Cualquier indicador sería de gran ayuda.
Gracias por su tiempo!
Saludos
Solución
Es necesario referencia y utiliza el objeto COM "biblioteca de objetos de Microsoft Word x.x" donde se x.x alguna versión dependiendo de la versión de Office que está utilizando.
A continuación, deberá utilizar un Word.ApplicationClass para abrir el documento de Word y acceder a sus datos. A menudo se sugiere que copie todo el documento de Word en el portapapeles y luego acceder a ella desde allí.
Algo así como:
Word.ApplicationClass wordApp = new Word.ApplicationClass();
object file = filepath;
object nullobj = System.Reflection.Missing.Value;
Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
IDataObject data = Clipboard.GetDataObject();
txtFileContent.Text = data.GetData(DataFormats.Text).ToString();
doc.Close();