Как скопировать отформатированную ячейку в Excel в ячейку таблицы в Word, используя .NET? - PullRequest
0 голосов
/ 20 апреля 2010

Я пытаюсь скопировать ячейки по одной из электронной таблицы Excel 2003 (или 2007) в таблицу Word 2003 (или 2007). Я хотел бы, чтобы код не зависел от версии, и поэтому я использую позднюю привязку. Необходимо сохранить форматирование содержимого ячейки Excel, например цвет, подчеркивание, зачеркнутый текст. Мой подход заключается в использовании документа Word в качестве шаблона. В верхней части таблицы есть таблица, которую я могу скопировать в конец документа, при необходимости добавить строки и заполнить ячейки таблицы слов данными из таблицы Excel. К сожалению, все форматирование исчезает. Все, что я получаю, это сам текст.

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Разобрался. Оказывается легче, чем ожидалось.

Dim appExcel As Excel.Application
Dim thisWorkbook As Excel.Workbook
Dim thisWorksheet As Excel.Worksheet

appExcel = CType(CreateObject("Excel.Application"), Excel.Application)
thisWorkbook = appExcel.Workbooks.Open("Excelfilename.xls")
thisWorksheet = CType(thisWorkbook.ActiveSheet, Excel.Worksheet)

Dim appWord As Word.Application
Dim thisDoc As Word.Document
Dim thisWordTable As Word.Table

' Use a template word doc that has a table in it.

appWord = CType(CreateObject("Word.Application"), Word.Application)
thisDoc = appWord.Documents.OpenNoRepairDialog("templateWordFileName.doc")
thisDoc.SaveAs("outputDocFileName.doc")

' Get a reference to the table.
thisWordTable = thisDoc.Tables(0)

' Copy data from excel to this table.
CType(thisWorksheet.Cells(5, 1), Excel.Range).Copy()
thisWordTable.Cell(1, 2).Select()
appWord.Selection.Paste()

thisDoc.Save()
thisDoc.Close()
appWord.Quit()

thisWorkbook.Close(False)   ' Don't save any changes to workbook.
appExcel.Quit()
0 голосов
/ 20 апреля 2010

Возможно, вам придется сначала сделать текст, а затем скопировать стиль вручную. Вы можете использовать Workbook.Styles, чтобы получить коллекцию Microsoft.Office.Interop.Excel.Style, и затем сможете создать Microsoft.Office.Interop.Word.Styles, используя эти данные.

...