Как объединить два объекта документа Word в C # (не на уровне файловой системы)? - PullRequest
3 голосов
/ 05 мая 2019

Я хочу добавить один объект документа Word к другому в моем коде C #.

Есть ли способ сделать это мгновенно с помощью функций взаимодействия слов, когда у меня есть оба документа в качестве объекта?

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

//schematic version of my code:

doc_template = wordapp.Documents.Open(ref filedocA,
                 ref readOnly, ref missing, ref missing, ref missing,
                 ref missing, ref missing, ref missing, ref missing,
                 ref missing);          
doc_final = wordapp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
wordapp.Document tempdoc = null;

foreach (customer cust in dt_customers)
{
    tempdoc = doc_template;
    //Do some search and replace functions in tempdoc
    ...
    //here somehow the complete tempdoc should be appended to doc_final

}

doc_final должен содержать все измененные временные документы каждого клиента

    //Update: Heres what i am doing now: Copying the contents within ranges
object start = tempdoc.Content.Start;
object end = tempdoc.Content.End; 
tempdoc.Range(ref start, ref end).Copy();
doc_final.Activate();
start = Destination.Content.End;
end = Destination.Content.End;


start = wordapp.ActiveDocument.Content.End - 1;
rng = Destination.Range(ref start, ref missing);
rng.Select();
rng.Paste();

Но есть ли лучший вариант, чем простойскопировать содержимое документов?

...