C#中CellReference的单元格中的值

时间:2010-11-09 10:13:55

标签: excel vsto

我正在使用Office Excel VSTO。我在工作簿中有一个单元格的单元格引用信息。比方说, Sheet1!$ A $ 5 。我想获取此单元格及其类型中的信息。这在VSTO中是否可能以任何方式实现?
我现在正在打破这个单元格引用转到工作表和单元格获取值。我想更简单的方法是可能的。

2 个答案:

答案 0 :(得分:1)

我不确定这是否是您所追求的,但以下内容可让您直接访问该单元格:

     var range = (Range)Globals.ThisAddIn.Application.Range["Sheet1!$a$5"];
     var cellContent = range.Value2;

答案 1 :(得分:0)

好的,我想我的问题已经解决了。
您希望使用VSTO替换用于更新当前工作簿中的值的工作簿链接 对我来说,线索是...... 1.想要获取此单元格及其类型的信息 2.使用VSTO来做到这一点 我现在打破这个细胞参考
顺便说一句,如果我的上述假设是正确的,那么请编辑你的问题,以便对未来的读者更有意义。

代码示例

//get workbook link cell ref  
var range = (Range)Globals.ThisAddIn.Application.Range["Sheet1!$a$5"];  
//determine type  
// if straight linking a value this step is unnecessary unless using the type info to format the cell   
// or because you are doing a transformation or aggregation on the data prior to putting it somewhere.  
// if needed... do some try/catchs on casting it to oledate, bool, double, string in that order.  
// get value
 var value = range.Value2;  
// update "active" sheet  
var sht = (Excel.WorkSheet)Globals.ThisAddIn.Application.ActiveSheet;  
sht.Range["A1"].Value2 = value;  
// don't forget to call FinalReleaseCOMObject and GC.WaitForPendingFinalizers/GC.Collect block!!

另请注意,如果您使用代码INSTEAD,则将“破坏单元格引用”。请注意,您可以保留工作簿链接,但是使用代码方法没有意义。我的建议是一般使用代码,因为它更灵活,但是当你想要速度(配置)并且数据不需要超过基本操作(SUM,IF,基本数学运算符)时利用链接。