Я еще не написал ничего конкретного, но у меня есть приложение 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;
}