Автозаполнение документа MS Word из ASP.NET

У меня сложная проблема.

Я разработал программу, которая берет некоторую информацию из базы данных и вставляет ее в текстовый документ. После этого он сохраняет текстовый документ на сервере, и пользователь программы может загрузить автозаполненный документ.

Я использую класс Microsoft.Office.Interop.Word для решения этой задачи, но заставить его работать на сервере x64 или рабочей станции x64 более чем невозможно.

Есть ли другой способ выполнить эту задачу? Мне нужно, чтобы файл можно было открыть в Word. Меня не волнует, был ли он создан, скажем, из OpenOffice или чего-то в этом роде.

Кто-нибудь знает решение этой проблемы без использования класса Interop.Word?

ОБНОВЛЕНИЕ (решение):

Вот что я в итоге сделал:

Я сохранил файл слов, который хотел использовать в качестве шаблона, в виде файла XML.

Затем я использую эту небольшую функцию:

    public void TestEditContract(string path)
    {
        XmlDocument document = new XmlDocument();
        TextReader reader = File.OpenText(path + "\\wordfile.xml");
        string allxml = reader.ReadToEnd();
        reader.Close();

        allxml = allxml.Replace("placeholder1", "Some content");
        document.LoadXml(allxml);
        document.Save(path + "\\wordfile.doc");
    }

В конце концов я просто сохраняю его как файл .doc, и он работает как шарм :)

Это немного взломано, но работает очень хорошо и не зависит от сервера. Спасибо, cgcarter1, за то, что указал мне в правильном направлении.


person MathiasH    schedule 08.09.2011    source источник
comment
Я кое-что слышал о Word XML, но понятия не имею, с чего начать и может ли это решить мою проблему.   -  person MathiasH    schedule 08.09.2011
comment
См. stackoverflow.com/questions / 282531 / Word откроет HTML с расширением .doc и внутренней таблицей стилей.   -  person Fionnuala    schedule 08.09.2011


Ответы (1)


Когда тебе нужен спортивный автомобиль, тебе нужен кадиллак. Зачем сохранять документ на сервере, если вы можете просто передать его им через буферный поток? Вот очень хороший метод доставки экспортированного документа Word через буфер без каких-либо зависимостей: http://geekswithblogs.net/vivek/archive/2006/09/26/92316.aspx

Без иждивенцев не нужно беспокоиться об архитектуре сервера. Кроме того, вы не предоставляете доступ к своей файловой структуре пользователю asp.net, когда вы обслуживаете файл через буфер, поэтому он немного более безопасен.

person cgcarter1    schedule 08.09.2011
comment
Да, я выбрал очень простое решение. Я сохранил шаблоны как xml и загрузил документ с помощью ридера. Отредактировано и сохранено как .doc :) - person MathiasH; 08.09.2011