Исключение из выпадающего списка Excel VSTO-шаблона - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь создать раскрывающийся список в шаблоне Excel с VSTO-шаблоном C#.

Я получаю значения для раскрывающегося списка из API.

Это мой код в Sheet1 классе

private List<OrganizationNode> _organizationNodes = new List<OrganizationNode>();

    private void Feuil1_Startup(object sender, System.EventArgs e)
    {
        var createDropDownListButton = Controls.AddButton(50, 150, 200, 50, "CreateDropDownList");
        createDropDownListButton.Text = "Créer dropdown";

        createDropDownListButton.Click += new EventHandler(CreateDropDownListButton_Click);
    }

    void CreateDropDownListButton_Click(object sender, EventArgs e)
    {
        var apiKeyCell = get_Range("ApiKey");
        var apiKey = apiKeyCell.Text;

        using (var httpClient = new HttpClient())
        {
            httpClient.DefaultRequestHeaders.Add("ApiKey", apiKey);

            var response = httpClient.GetAsync("http://localhost:53626/tables/OrganizationNode").Result;

            _organizationNodes = response.DeserializeAsync<List<OrganizationNode>>().Result;
        };

        var organizationNames = _organizationNodes.Where(x => x.OrganizationNodeType == "organizationUnit").Select(x => x.OrganizationName).ToList();

        organizationNames.Add("All");

        var flatList = string.Join(";", organizationNames.ToArray());

        var cell = get_Range("B28");

        cell.Validation.Delete();
        cell.Validation.Add(
           Excel.XlDVType.xlValidateList,
           Excel.XlDVAlertStyle.xlValidAlertInformation,
           Excel.XlFormatConditionOperator.xlBetween,
           flatList,
           Missing.Value);

        cell.Validation.IgnoreBlank = true;
        cell.Validation.InCellDropdown = true;
        cell.Validation.ErrorMessage = "ErrorMessage";
        cell.Validation.ErrorTitle = "ErrorTitle";
        cell.Validation.InputMessage = "InputMessage";
        cell.Validation.InputTitle = "InputTitle";
        cell.Validation.ShowError = true;
        cell.Validation.ShowInput = true;
    }

У меня есть 'System.Runtime.InteropServices.COMException: 'Exception de HRESULT : 0x800A03EC' в строке Validation.Add, и я не могу найти почему. Я узнал много вопросов об этом исключении, но никто не помог мне.

Может кто-нибудь помочь мне в этом вопросе?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...