c# - Excel 工作表修改当前工作表 C#

标签 c# winforms excel

是否可以修改 Excel 中已打开的工作表。他们的 MSDN 页面为您提供了以下内容。这每次都会添加一个新的工作簿和工作表。我有代码打开和现有工作表,我只想用它替换单元格和关闭中的值。非常感谢任何帮助。

using Excel = Microsoft.Office.Interop.Excel; //Excel Reference

 public virtual Object ActiveSheet { get; set; }

 private void button15_Click(object sender, EventArgs e)//Generate Model and Part Numbers
    {
        Excel.Application oXL;
        Excel._Workbook oWB;
        Excel._Worksheet oSheet;

        //Start Excel and get Application object.
        oXL = new Excel.Application();
        oXL.Visible = true;

        //Get a new workbook.
        oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
        oSheet = (Excel._Worksheet)oWB.ActiveSheet;  
        oSheet.Cells[6, 4] = "0"; //Change Value in Cell in Excel Cell Location [y-axis, x-axis]
     }

最佳答案

您可以迭代oXL.Workbooks来访问当前打开的工作簿...当前事件的工作簿可通过oXl.ActiveWorkbook获得.

编辑 - 根据评论:

要么使用oXL.Wi​​ndows找到已经打开的窗口,并在访问ActiveWorkbook之前调用Activate,或者只调用 oXL.ActiveWindow.Close()oXL.ActiveWindow.ActivatePrevious() 获取已打开的窗口...

编辑2 - 根据评论的解决方案的最后部分:

使用

oXL = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

关于c# - Excel 工作表修改当前工作表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474325/

相关文章:

c# - WebService GET/POST 调用和 SOAP

excel - 如何找到包含空格的 LastColumn

vba - 工作表更改事件陷入无限循环

excel - VBA 函数未执行

c# - 从服务器向 25 个客户端广播一条消息,没有任何延迟 C# asp.net

c# - 如何从 "Grip"回收空间

c# - 如何在 C# 中制作只显示秒和毫秒的秒表?

mysql - xtragrid devexpress 中的主详细信息 View

c# - 设置 ASP.NET (4.0) 列表框的宽度和高度以适合项目

c# - 关于在 C# 中运行时关闭窗体