Импорт документов DOC и DOCX в .Net и C # - PullRequest
3 голосов
/ 21 декабря 2010

Я пишу текстовый редактор и хочу добавить возможность импорта файлов .doc и .docx.Я знаю, что мог бы использовать OLE Automation, но если я использую недавнюю OLE-библиотеку, она не будет работать с теми людьми, у которых установлена ​​более старая версия Word, и если вместо этого я использую более старую версию, она не сможет читатьфайлы .docx.Есть идеи?Спасибо

РЕДАКТИРОВАТЬ: Другое решение было бы, как мое приложение работает с HTML и RTF, конвертировать файлы .doc и .docx с командной строкой в ​​один из этих форматов, что-то вроде этого:2007/09 / с использованием слов-для-команды-линии co.html

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Работает с Office 2003 PIA, протестировано на моем компьютере под управлением Office 2010:

using System.IO;
using System.Reflection;
using Microsoft.Office.Interop.Word;

public string GetHtmlFromDoc(string path)
    var wordApp = new Application {Visible = false};

//Cargar documento
            object srcPath = path;
            var wordDoc = wordApp.Documents.Open(ref srcPath);

            //Guardarlo en HTML
            string destPath = Path.Combine(Path.GetTempPath(), "word" + (new Random().Next()) + ".html");
            if (wordDoc != null)
            {
                object oDestPath = destPath;
                object exportFormat = WdSaveFormat.wdFormatHTML;
                wordDoc.SaveAs(ref oDestPath, ref exportFormat);
            }

            //Cerrar
            wordDoc.Close();
            wordApp.Quit();

            //Comprobar que el archivo existe);
            if (File.Exists(destPath))
            {
               return File.ReadAllText(destPath, Encoding.Default);
}
return null;
}
1 голос
/ 21 декабря 2010

Почему бы вам не использовать Основные сборки взаимодействия Office (PIA)?

Я думаю, вам придется решить, какие версии Word вы хотите поддерживать. Я предлагаю вам выбрать Word 2003 как самый низкий. Это позволит вам использовать Office 2003 PIA и программировать против них. Установка PIA на машине также устанавливает перенаправления привязки, поэтому они работают с более новыми версиями Word. Не должно быть проблем с открытием файлов .docx в Word 2007 или 2010 через Office 2003 PIA, хотя я сам не пробовал.

0 голосов
/ 21 декабря 2010

Вы должны иметь возможность использовать библиотеки OpenXML или xpath в .NET для чтения / импорта содержимого файла docx.

...