2013-10-14 6 views
0

Ok Je crée un projet qui doit ressembler aux Tâches dans TFS lorsque vous exportez les tâches vers Excel et publiez à nouveau. D'abord, je suis en train de générer un fichier Excel avec les données nécessaires, il doit remplir une zone de liste déroulante avec des noms comme « Donald », « Wilco », « Jansen » etc, avec le code suivant, je peux les ajouter à un menu déroulant et ajouter la liste déroulante à une cellule spécifique. Si je vais à la cellule A1, il devrait avoir une liste déroulante, si je vais à la cellule A2, il devrait avoir une liste déroulante A (x) devrait toujours avoir un drowpdown si J'ajoute de l'information et vais à une nouvelle ligne, il devrait y avoir la liste déroulante.C# Excel Dropdown sur chaque nouvelle ligne

Actuellement je le code suivant pour commencer avec, mais ne sais pas où aller d'ici

 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; 

Répondre

1

a résolu le problème avec le

suivant
 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; 
Questions connexes