2013-10-14 3 views
0

ОК Я создаю проект, который должен действовать Подобно задачам в TFS при экспорте задач в Excel и публикации снова. Сначала я пытаюсь создать файл Excel с необходимыми данными, он должен заполнить раскрывающийся список с именами, например «Дональд», «Уилко», «Янсен» и т. Д., Со следующим кодом, который я могу добавить в раскрывающийся список и добавить выпадающий список для конкретной ячейки. Но я хочу, чтобы этот столбец имел выпадающее меню , т. Е. , если я иду в ячейку A1, у него должно быть выпадающее меню, если я иду в ячейку A2, у него должно быть выпадающее меню A (x) всегда должно быть drowpdown, поэтому If Я добавляю информацию и перехожу на новую Линию, у которой должен быть выпадающий список.C# Excel Dropdown для каждой новой строки

В настоящее время у меня есть следующий код, чтобы начать не с, но понятия не имею, где не идти отсюда

 var oMissing = Type.Missing; 

     var excel = new Application(); 
     var wb = excel.Workbooks.Add(1); 
     var sh = wb.Sheets.Add(); 
     sh.Name = "TestSheet"; 
     sh.Cells[1, "A"].Value2 = "SNO"; 
     sh.Cells[2, "B"].Value2 = "A"; 
     sh.Cells[2, "C"].Value2 = "1122"; 

     var range = sh.Range["A1","A1"]; 
     var xlDropDowns = ((DropDowns)(sh.DropDowns(oMissing))); 
     var xlDropDown = xlDropDowns.Add((double)range.Left, (double)range.Top, (double)range.Width, (double)range.Height, false); 
     var items = new[] { "Name1", "Name2", "Name3" }; 

     //Add items into drop down list 
     for (int i = 0; i < items.Length; i++) 
     { 
      xlDropDown.AddItem(items[i], i + 1); 
     } 

     //wb.Close(true); 
     //excel.Quit(); 
     excel.Visible = true; 

ответ

1

решаемые с помощью следующей

 var oMissing = Type.Missing; 

     var excel = new Application(); 
     var wb = excel.Workbooks.Add(1); 
     var sheet = wb.Sheets.Add(); 
     sheet.Name = "ClientEditSheet"; 
     sheet.Visible = false; 


     sheet.Range["A1"].Value = "Name1"; 
     sheet.Range["A2"].Value = "Name2"; 
     sheet.Range["A3"].Value = "Name3"; 
     sheet.Range["A4"].Value = "Name4"; 

     var sheet2 = wb.Sheets["Sheet1"]; 

     Range validatingCellsRange = sheet2.Range["B1"].EntireColumn; 

     var lookupValues = "=ClientEditSheet!$" + "A" + "$1:$" + "A" + "$14"; 

     validatingCellsRange.Validation.Delete(); 
     validatingCellsRange.Validation.Add(XlDVType.xlValidateList, 
       XlDVAlertStyle.xlValidAlertInformation, 
       XlFormatConditionOperator.xlBetween, lookupValues, Type.Missing); 
     validatingCellsRange.Validation.IgnoreBlank = true; 
     validatingCellsRange.Validation.InCellDropdown = true; 

     //wb.Close(true); 
     //excel.Quit(); 
     excel.Visible = true; 
Смежные вопросы