Я пытаюсь создать раскрывающийся список в шаблоне 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
, и я не могу найти почему. Я узнал много вопросов об этом исключении, но никто не помог мне.
Может кто-нибудь помочь мне в этом вопросе?
Спасибо