2016-12-03 1 views
0

Для проекта, над которым я работаю, нам нужно скопировать данные из листов 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, сохраняя как можно больше форматирования и не мешая системному буферу?

ответ

Смежные вопросы