VSTO Mock Range и добавление данных из запроса в макетированный диапазон - PullRequest
0 голосов
/ 20 октября 2018

Я еще не написал ничего конкретного, но у меня есть приложение VSTO, и я хотел бы сделать следующее:

1) Mock Range Interop, используя Moq

2) Добавитьтаблица запросов к фиктивному диапазону, так что она заполняется данными, возвращаемыми из SQL-запроса

3) Добавить DataValidation в ячейку (диапазон) из моей текущей рабочей таблицы, используя данные макетированного диапазона в качестве списка возможных итэноввнутри выпадающего списка.

Возможно ли вообще такое поведение?

В моей первой попытке я смог создать фиктивный диапазон, но мой ListObject не был бы создан с использованием фиктивного диапазона вместофактический диапазон.

Буду признателен за любые подсказки

По запросу, вот код:

List<string> values = new List<string>();
values.Add("First");
values.Add("Second");
if(values.Count > 0)
{
    string data = String.Join(";", values);
    var mockedrange = new Mock<Microsoft.Office.Interop.Excel.Range>();
    for(int i = 0; i < values.Count; i++)
    {
        mockedrange.Setup(r => r[i, It.IsAny<object>()]).Returns(values[i]);
    }

    Microsoft.Office.Interop.Excel.Range range3 = VSTOSheet.Cells[countaux, 3];
    range3.Select();
    range3.Validation.Delete();
    range3.Validation.Add(XlDVType.xlValidateList,
                          XlDVAlertStyle.xlValidAlertInformation,
                          XlFormatConditionOperator.xlBetween, 
                          data, 
                          Type.Missing);
    range3.Validation.IgnoreBlank = true;
    range3.Validation.InCellDropdown = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...