是否可以修改 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.Windows
找到已经打开的窗口,并在访问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/