Convertendo um docx e upload para a tabela sql
-
18-09-2019 - |
Pergunta
Eu tenho um documento do Word no formato docx com dados em repetir padrão de formato.
Eu gostaria de aproveitar cada dados do conjunto de repetir e para carregar uma linha na tabela de SQL.
Amostra dos dados aqui:
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.
Eu poderia pensar em algumas abordagens:
- Leia o documento como docx usando a API
Escritório
- Salvar o documento como XML do Word e XML parse [o documento XML convertido não parece ter uma estrutura / esquema]
- Salvar o documento como HTML de Word e analisar HTML [estrutura DOM não bem formado]
Qual dentre acima que você sugeriria e por quê? Existem algumas ferramentas para ajudar a converter um documento e para carregar uma tabela SQL ou acesso DB?
Obrigado!
Solução
DOCX é apenas uma árvore ZIP diretório de arquivos XML. Use WinZip ou 7-zip para extraí-lo para um conjunto de subdiretórios. Faça o upload dos arquivos XML para SQL Server, adicionando seu nome de arquivo e caminho da pasta. o uso dos métodos de XML do SQL Server (.node, etc) para as cortou na forma relacional que você deseja.
Note que estes têm esquemas e estruturas XML.
Outras dicas
Se você estiver indo para processar esses arquivos não muito frequentemente, então eu diria que guardá-lo para um formato diferente (mais fácil de processo pelo SQL) - talvez até mesmo um formato de texto simples. Se este processo (de importar este arquivo para DB) vai ser realizada em uma base regular - ir para o processamento DOCX nativa sem convertê-lo para um formato intermediário. Breve Pesquisa Google revelou que existem componentes disponíveis que podem ler docx formato dentro de um banco de dados (por exemplo, http://www.brothersoft.com/code-library-for-.net- (sql-server-msde) -22050.html )