2010-08-18 4 views
1

Un fournisseur fournit un contenu qui doit être inséré dans la base de données. Le contenu est essentiellement des questions avec des options et des explications. Un exemple est ci-dessous.Lecture des données à partir de .doc ou .docx et insertion dans db

=========================================

1 Quelle est la capitale du Royaume-Uni?

1] Londres 2] Paris 3] Berlin 4] Edinburgh

Solution: blablabla

Réponse: Option 1

============= ================================

Il y a des centaines de questions dans le format ci-dessus et le fournisseur le fournit dans un Format .doc ou .docx. Toutes ces questions doivent être saisies dans la base de données et je dois automatiser le processus pour que les données soient lues à partir du mot doc et entrées dans db.

Quelle est la meilleure façon de procéder? Je préfère utiliser C# et j'ai déjà du code auquel prend des objets personnalisés et l'insère dans les tables pertinentes. Maintenant tout ce que je veux c'est lire le mot doc et peupler ces objets. Tout pointeur serait utile.

Nous vous remercions de votre temps!

Vive

Répondre

1

Vous devez référencer et utiliser l'objet COM « Microsoft Word bibliothèque d'objets x.x » où x.x est une version en fonction de la version d'Office que vous utilisez.

Vous devez ensuite utiliser une classe Word.ApplicationClass pour ouvrir le document Word et accéder à ses données. Il est souvent recommandé de copier tout le document Word dans le presse-papiers, puis d'y accéder à partir de là.

Quelque chose comme:

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(); 
Questions connexes