2010-11-09 2 views
2

Я использую Office Excel VSTO. У меня есть справочная информация ячейки ячейки в моей книге. скажем, Sheet1! $ A $ 5. Я хочу получить информацию в этой ячейке и ее типе. Возможно ли это в VSTO любыми способами?
Теперь я разбиваю эту ссылку на ячейку, чтобы лист и ячейка получили значения. Я предполагаю, что возможны более простые способы.Значение в ячейке из CellReference в C#

ответ

1

Я не уверен, если это то, что вы после этого, но следующее дает прямой доступ к камере:

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

Ok, я думаю, что ваш вопрос выяснял.
Вы хотите использовать VSTO для замены ссылки на рабочую книгу, которую вы используете, для обновления значения в текущей книге.
Для меня подсказки ....
1. хотите получить информацию, содержащуюся в этой ячейке и ее тип
2. Использование VSTO сделать это
3. утра в настоящее время нарушение этой ссылки на ячейку
Кстати, если мой предположение выше правильно, тогда отредактируйте свой вопрос, чтобы иметь больше смысла для будущих читателей.

Пример кода

//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!! 

Также обратите внимание, что да, будет «ломать ссылку на ячейку», если вы используете код ВМЕСТО. Обратите внимание, что вы можете сохранить ссылку на рабочую книгу, но тогда нет смысла использовать кодовый подход. Мой совет будет в общем использовании кода, поскольку он более гибкий, но используйте ссылки, когда вам нужна скорость (конфигурации), и данные не требуют больше, чем базовые манипуляции (SUM, IF, базовые математические операторы).

Смежные вопросы