如何使用 Word 加载项创建 Excel 表



我正在尝试创建一个Excel表,然后使用C# Word加载项将其插入到Word文档中。 我创建了一个全新的 Word 2010 加载项并引用了该Microsoft.Office.Interop.Excel。 作为快速测试,我尝试创建一个新Excel.Worksheet并用一些值填充它。 然后,我使用 InsertDatabase 方法将其插入到 word 文档中:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
      Excel.Worksheet testWrkSht = new Excel.Worksheet();
      for(int i = 1; i < 5; i++)
      {
           testWrkSht.Range["A" + i.ToString()].Value = i ^ (i + 1);
      }
      Word.Document curDoc = this.Application.ActiveDocument;
      curDoc.Paragraphs[1].Range.InsertDatabase(testWrkSht);
}

我的问题是,当我尝试执行此操作时,出现以下错误:

类型为"System.InvalidCastException"的异常发生在 MyCustomAddIn.dll但未在用户代码中处理

其他信息:无法强制转换类型的 COM 对象 "Microsoft.Office.Interop.Excel.WorksheetClass"到接口类型 'Microsoft.Office.Interop.Excel._Worksheet'.此操作失败 因为查询接口调用接口的 COM 组件的接口 IID"{000208D8-0000-0000-C000-000000000046}"由于 以下错误:接口未知。(HRESULT的例外情况: 0x800706B5)。

如何创建 Excel 电子表格表并将其插入到 Word 文档中?

由于您正在创建 Word 加载项,因此需要打开另一个 Excel 实例,然后创建 Excel 工作表。 下面是一个快速示例:

    Excel.Application xlApp = new Excel.Application();
    if (xlApp == null)
    {
        Console.WriteLine("Excel could not be started.  Check that your office installation and project references are correct.");
        return;
    }
    xlApp.Visible = true;
    Excel.Workbook wb = xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
    if (ws == null)
    {
        Console.WriteLine("Worksheet could not be created.  Check that you office installation and project references are correct.");
    }
    for(int i = 1; i < 5; i++)
    {
        ws.Range["A" + i.ToString()].Value = i * (i + 1);
    }
    wb.SaveAs(Filename: "C:\temp\test.xlsx");

这还假定你已添加相应的 using 语句:using Excel = Microsoft.Office.Interop.Excel;,并添加了对 Excel 互操作的引用。

最新更新