VSTO模拟范围并将查询中的数据添加到模拟范围

时间:2018-10-20 03:26:44

标签: c# excel vsto moq

我还没有写任何具体的东西,但是我有一个VSTO应用程序,我想做以下事情:

1)使用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;
}

0 个答案:

没有答案