Как сохранить форматирование ячеек при копировании ячеек из Excel в Word - PullRequest
0 голосов
/ 09 января 2012

В настоящее время я использую OleDB для соединения с электронной таблицей Excel и получения данных в DataTable, выполняю некоторые изменения в данных и затем копирую данные в Word.

При этом я теряю форматирование ячейки, например, если какая-то часть текста была цветной, или цвет фона был серым, или если он жирный.

Я использую библиотеку Interop для общения со словом и OLEDB с Excel.

Если это решение не подходит для того, чего мне нужно достичь, можете ли вы предложить альтернативные решения? (Макросы?) Я попытался использовать Interop.Excel.Styles, но не могу понять, как связать его с используемой в данный момент ячейкой.

Ответы [ 2 ]

1 голос
/ 24 января 2012

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

wordDoc.Tables.Add(b.Range,newsheet.UsedRange.Rows.Count,newsheet.UsedRange.Columns.Count);
Microsoft.Office.Interop.Word.Table table = b.Range.Tables[1];
newsheet.UsedRange.Copy();
table.Range.Select(); 
wordApp.Selection.Paste();

wordDoc - это Word.Document, а wordApp - это word.Application. Надеюсь, это поможет

0 голосов
/ 09 января 2012

Да, это случится.OleDB перемещает данные, а не форматирует информацию.Если вы хотите форматирования, вам придется копировать / вставлять из Excel в Word.Если вам нужно автоматизировать процесс, VBA - это самый простой способ управления Excel и Word извне.

...