Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VSTO excel使用C#_C#_Vsto_Excel 2007 - Fatal编程技术网

使用VSTO excel使用C#

使用VSTO excel使用C#,c#,vsto,excel-2007,C#,Vsto,Excel 2007,问题1: 如何使用C#访问VSTO excel上的windows窗体及其控件 问题2: 在执行VSTO Excel工作簿应用程序时,我需要用户粘贴数据时活动列的总数。 假设用户可以粘贴5列数据或10列数据。一旦用户粘贴/加载表格数据,我想通过代码计算出总列数(如果可能的话,还包括总行数)。 当数据粘贴到单元格上时,如何在执行VSTO excel时获取单元格的不确定范围值 请帮助我编写这两个问题的代码。Q1:与在winforms应用程序中一样,创建windows窗体时,请保留对它的引用。确保为表单

问题1: 如何使用C#访问VSTO excel上的windows窗体及其控件

问题2: 在执行VSTO Excel工作簿应用程序时,我需要用户粘贴数据时活动列的总数。 假设用户可以粘贴5列数据或10列数据。一旦用户粘贴/加载表格数据,我想通过代码计算出总列数(如果可能的话,还包括总行数)。 当数据粘贴到单元格上时,如何在执行VSTO excel时获取单元格的不确定范围值


请帮助我编写这两个问题的代码。

Q1:与在winforms应用程序中一样,创建windows窗体时,请保留对它的引用。确保为表单公开属性访问器(get;set;)

问题2:您需要实现AppEvents\u SheetChangeEventHandler并将其分配给Globals.ThisAddin.Application.SheetChange事件属性。在事件处理程序中,第二个参数是Excel.Range TargetRange。TargetRange是包含粘贴信息的Excel.Range对象。range.Columns.Count属性获取粘贴中的总列数,range.Rows.Count获取粘贴中的总行数


不确定“如何获得单元格的不确定范围值”是什么意思。你能澄清一下吗?

Q1:你可以通过->项目->添加新项目->表单页面简单地添加赢单 您必须创建此表单的新实例

例如:当您设计了名为winForm的表单时

Example.ExampleForm ExampleForm=newexampleform();
exampleForm.Show();
问题2:

我不确定我是否理解正确。但是,例如,如果开始时有一张空白纸,您可以这样做:

   Excel.Range rng;
   object[,] swap;

   rng = tws.UsedRange;
   swap = rng.Value2;
用户可以访问的所有单元格的值,如上面在对象数组中提到的。
这个阵列是1基的

嗨,Venkat,使用.VSTO addins for excel既有趣又棘手。Q1:使用visual studio时,可以将用户控件添加到加载项中,如果需要,甚至可以添加到您自己的ribbon对象中。您只需进入项目,添加组件,就可以了。很好的一件事,所有的工作方式都与编写普通winforms应用程序完全相同。问题2:不太确定您的意思,但在vba中,您可以编写此代码来获取行数:Sub test()'按长度输入Dim计数器'输入计数器=范围(“A:A”)。Rows.Count'输入MsgBox(计数器)'输入结束Sub