2013-11-28 9 views
5

diesen Code vor:Epplus Zahl der Drop-Down-Begrenzung Artikel in Excel-Datei

var dropDown = sheet.DataValidations.AddListValidation(cells[2, colIndex, maxCol, colIndex].Address); 
       foreach (var bb in brokerBranchs) 
       { 
        dropDown.Formula.Values.Add(bb.Title); 
       } 

Mit 29 von dropDown Artikel alles in Ordnung ist und erstellt Excel-Datei funktioniert gut, aber als die Anzahl der Elemente 29 überschreitet, erstellte Datei öffnen zeigt folgenden Fehler an: enter image description here Das Öffnen der beschädigten Ergebnisdatei verwirft alle Dropdown-Elemente, die allen Spalten zugeordnet sind. Was ist eine mögliche Lösung für dieses Problem? Jede Hilfe wird geschätzt.

+2

Ich denke, es ist Excel-Beschränkung nicht Epplus. –

+1

@bradciven ich stimme zu –

+3

@ShahroozJefri ㇱ Ich stimme zu, dass Sie @ bradciven zustimmen –

Antwort

2

müssen Sie neues Blatt in den dieses Tabellenblatt einfügen Element hinzufügen Dropdown

ExcelWorksheet ddList = excelPackage.Workbook.Worksheets.Add("DropDownList"); 

jetzt fügen Sie Daten zu ddList in der ersten Spalte

var brokerBranchs = accountingUnitOfWork.BrokerServiceAccessor.GetBrokerBranchByBrokerId(firmId).OrderBy(x => x.Title).ToList(); 
      var val = sheet.DataValidations.AddListValidation(cells[2, colIndex, maxCol, colIndex].Address); 
      for (int index = 1; index <= brokerBranchs.Count; index++) 
      { 
       ddList.Cells[index, 1].Value = brokerBranchs[index - 1].Title; 
      } 

nun Adresse für den Einsatz in der Formel erstellen

var address = ddList.Cells[1, 1, brokerBranchs.Count(), 1].Address.ToString(); 
var arr = address.Split(':'); 
var char1 = arr[0][0]; 
var num1 = arr[0].Trim(char1); 
var char2 = arr[1][0]; 
var num2 = arr[1].Trim(char2); 

Verwenden Sie jetzt die Adresse in der Formel

val.Formula.ExcelFormula = string.Format("=DropDownList!${0}${1}:${2}${3}", char1,   num1, char2, num2); 
val.ShowErrorMessage = true; 
val.Error = "Select from List of Values ...";