2009-08-17 7 views
0

J'ai un document Word au format docx avec des données en format de format répétitif.Conversion d'un docx et transfert vers une table sql

Je voudrais prendre chaque donnée de l'ensemble répétitif et la télécharger sur une ligne de la table SQL.

échantillon de données ici:

Question No : 1 
How is LINQ to SQL different from Entities? 

A. Answer 1 
B. Answer 1 
C. Answer 1 
D. Answer 1 

Answer : D 
Explanations : 
Some explanation. 

Question No : 2 
How is NVARCHAR different from VARCHAR 

A. Answer 1 
B. Answer 1 
C. Answer 1 
D. Answer 1 

Answer : D 
Explanations : 
Some explanation. 

je pouvais penser à quelques approches:
- Lire le document docx en utilisant l'API Office de
- Enregistrez le document XML à partir de Word et d'analyser XML [le document XML converti ne semble pas avoir une structure/schéma]
- Enregistrer le document au format HTML à partir de Word et analyser HTML [structure DOM pas bien formé]

Parmi ceux ci-dessus suggéreriez-vous et pourquoi? Existe-t-il des outils pour aider à convertir un document et le télécharger dans une table SQL ou accéder à la base de données?

Merci!

Répondre

2

DOCX est juste une arborescence de répertoires ZIP de fichiers XML. Utilisez WinZip ou 7-Zip pour l'extraire dans un ensemble de sous-répertoires. Téléchargez ces fichiers XML sur SQL Server en ajoutant leur nom de fichier et leur chemin de dossier. l'utilisation des méthodes SQL Server XML (.node, etc) pour les ranger dans le formulaire relationnel que vous voulez.

Notez que ceux-ci ont des structures et des schémas XML.

0

Si vous allez traiter ces fichiers pas très souvent, alors je dirais enregistrer dans un format différent (plus facile à traiter par SQL) - peut-être même un format de texte brut. Si ce processus (d'importation de ce fichier vers DB) va être effectué régulièrement - allez pour le traitement DOCX natif sans le convertir en un format intermédiaire. La recherche rapide sur Google a révélé qu'il y a des composants disponibles qui peuvent lire le format docx dans une base de données (par exemple http://www.brothersoft.com/code-library-for-.net-(sql-server-msde)-22050.html)

Questions connexes