Для проекта, над которым я работаю, нам нужно скопировать данные из листов Excel в новые таблицы в документе Word и разработать стратегию, которая работает ... в большинство случаев.MS Office Automation переносит таблицу из Excel в Word, используя PublishObjects.Add
Во-первых, мы делаем
string file = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() +
".mht");
object sheetObj = sheetName;
object trueObj = true;
Excel.PublishObject obj = workbook.PublishObjects.Add(Excel.XlSourceType.xlSourceSheet, file,
sheetObj);
obj.Publish(trueObj);
затем Документ tempDocument = wordApp.Documents.Open (файл); и прочитайте templDocument в документе darge. ...
В некоторых случаях мы видим проблемы. (Проблемы проиллюстрированы в файлах примеров на http://thinkscience.us/office/examples.zip) 1) большие текстовые файлы показывают усечение текста между Excel и экспортированным .mht 2) «файлы питания» показывают добавление нескольких строк пробела между данными Excel и .mht.
Я пробовал несколько вариантов параметров для PublishObjects.Add (используя диапазон, а не весь лист). Метод add включает необязательный параметр XlHtmlType, который работает только со значением XlHtmlType.xlHtmlStatic.
Кто-нибудь использовал PublishObjects.Add или другую стратегию переноса листов из Excel в Word, сохраняя как можно больше форматирования и не мешая системному буферу?