Leitura.Ficheiro Doc com DocumentFormat.Dll do OpenXml
Pode Documentar.OpenXml dll ajuda na leitura .doc file?
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;
}
}
4 answers
O velho .os arquivos doc têm um formato completamente diferente do novo .ficheiros docx. Então, não, você não pode usar a biblioteca OpenXml para ler .ficheiros médicos.
Para fazer isso, você teria que converter manualmente os arquivos primeiro, ou teria que usar o Office interop, em vez do Open XML SDK que você está usando agora.
Como sugerido, a única outra opção que você tem é usar o Word interop ou biblioteca de terceiros para converter DOC -> DOCX que você pode então trabalhar com a biblioteca OpenXml.
.doc
(se Criado com uma versão mais antiga de Microsoft Word
) não tem a mesma estrutura que um .docx
(que é basicamente um ficheiro zip com alguns documentos XML).
Se o seu .doc
for ' inzippable '(basta mudar o nome da extensão .doc
para .zip
) para sonda, terá de converter manualmente o .doc
para um .docx
.
Pode usar IFilterTextReader
.
TextReader reader = new FilterReader(path);
using (reader)
{
txt = reader.ReadToEnd();
}
Podes dar uma vista de olhos http://www.codeproject.com/Articles/13391/Using-IFilter-in-C