2014-09-04 2 views
2

Я заполняю ячейки Excel как строку и столбец, используя C# во всем моем проекте, как показано ниже. Теперь есть новое требование о добавлении выпадающего списка в конкретную ячейку.Добавить выпадающий список на листе Excel с помощью C#

var oXl = new Microsoft.Office.Interop.Excel.Application {DisplayAlerts = false}; 
var oWb = oXl.Workbooks.Open(excelFileName); 
Microsoft.Office.Interop.Excel._Worksheet oSheet = oWb.Sheets[2]; 
oSheet.Cells[row, 1] = changeName + "\t"; 
oSheet.Cells[row, 2] = newName + "\t"; 
oSheet.Cells[row, 3] = (i + 1) + "\t"; 
oSheet.Cells[row, 4] = filename; 
oSheet.Cells[row, 5] = type; 
oSheet.Cells[row, 8] = dropdown; // Here I need to add a dropdown list 

Как это сделать?

ответ

6

Сначала сделайте список для выпадающего списка

 var list = new System.Collections.Generic.List<string>(); 
     list.Add("Charlie"); 
     list.Add("Delta"); 
     list.Add("Echo"); 
     var flatList = string.Join(",", list.ToArray()); 

затем добавить этот список в раскрывающемся меню в конкретной ячейке, как показано ниже

var cell = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[row, 8]; 
      cell.Validation.Delete(); 
      cell.Validation.Add(
       XlDVType.xlValidateList, 
       XlDVAlertStyle.xlValidAlertInformation, 
       XlFormatConditionOperator.xlBetween, 
       flatList, 
       Type.Missing); 

      cell.Validation.IgnoreBlank = true; 
      cell.Validation.InCellDropdown = true; 
+0

он создал выпадающий список, но там нет значения по умолчанию в раскрывающемся списке – asb

+2

добавьте значение по умолчанию, например cell.Value = "значение по умолчанию"; –

+0

Если вы цитируете другой источник, по крайней мере отдать должное оригинальному автору: http://www.clear-lines.com/blog/post/Excel-In-Cell-DropDown-with-CSharp.aspx –