2010-04-20 116 views
0

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

回答

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

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

相关问题