【问题标题】:How to copy a formatted cell in Excel to a table cell in Word using .NET?如何使用 .NET 将 Excel 中的格式化单元格复制到 Word 中的表格单元格?
【发布时间】:2010-04-20 01:46:07
【问题描述】:

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

【问题讨论】:

    标签: c# vb.net excel ms-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()
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        相关资源
        最近更新 更多