【问题标题】:Write to cell in excel using c#使用c#写入excel中的单元格
【发布时间】:2015-05-29 21:17:43
【问题描述】:

我创建了一个包含 ThisWorkbook 类的 Visual Studio excel 工作簿项目,然后我包含了一个函数类,以便我可以创建自己的 excel 函数。我正在尝试通过使用函数将值写入使用 c# 的单元格。我可以通过函数类写入 excel 单元格,但只能通过创建一个新的应用程序/工作簿。所以每次我使用这个excel函数时,它都会打开一个新的excel实例。有没有办法可以写入当前已打开的 Excel 工作簿中的单元格?

【问题讨论】:

  • 就像我知道的那样,我可以在 ThisWorkbook 类中简单地执行此操作,例如.. 'Excel.Worksheet worksheet = ((Excel.Worksheet)Application.Activesheet); Excel.Range firstcol = worksheet.get_Range("A1","A1"); firstcol.Value2 = "你好";'
  • 请发布您正在使用的代码,以便我们帮助改进它......或者至少代表您的代码的东西

标签: c# excel vsto


【解决方案1】:

看,我试过了,这段代码有效:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    Excel.Worksheet ws = (Excel.Worksheet)(sender as Workbook).ActiveSheet;

    System.Random rnd = new System.Random();

    for (int i = 1; i <= 20; i++)
        ws.Cells[i, 2] = rnd.Next(100);
}

如您所见,您可以访问 Worksheet 并使用 ws.Cells 来操作单元格值。

这里有很多例子:

Understanding the Excel Object Model from a .NET Developer's Perspective

【讨论】:

  • 我可以在 ThisWorkbook 类之外做类似的事情吗?我想在我的函数类中做同样的事情,但我无法调用,因为它是一个私有的 void。谢谢
【解决方案2】:

您可能会创建一个新的 Excel 应用程序,而不是连接到活动的 Excel 应用程序。

使用GetActiveObject 获取对 Excel 应用程序对象的引用。

【讨论】:

  • 是的,我确实创建了一个新的 Excel 应用程序。那么 GetActiveObject 允许我连接到当前打开的现有 excel 应用程序吗?
猜你喜欢
  • 2018-10-08
  • 2021-10-10
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 2015-09-17
相关资源
最近更新 更多