如何使用.NET将Excel中的格式化单元格复制到Word中的表格单元格?

时间:2010-04-20 01:46:07

标签: c# vb.net excel ms-word

我正在尝试一次一个地将单元格从Excel 2003(或2007)电子表格复制到Word 2003(或2007)表格。我希望代码与版本无关,所以我使用后期绑定。需要保留Excel单元格内容的格式,例如颜色,下划线,删除线。我的方法是使用Word doc作为模板。它在顶部有一个表格,我可以将其复制到文档的末尾,根据需要添加行,并使用excel电子表格中的数据填写单词表格单元格。不幸的是,所有格式都消失了。我得到的只是文本本身。

2 个答案:

答案 0 :(得分:1)

想出来。事实证明比预期更容易。

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()

答案 1 :(得分:0)

您可能必须先执行文本,然后手动复制样式。您可以使用Workbook.Styles获取Microsoft.Office.Interop.Excel.Style的集合,然后应该能够使用该数据创建Microsoft.Office.Interop.Word.Styles。