Epplus excel文件中的下拉项限制数

Moh*_*ani 5 c# excel export-to-excel epplus

考虑以下代码:

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

有25个dropDown项目一切正常,创建的excel文件工作正常但是当项目数超过29时,打开创建的文件显示以下错误: 在此输入图像描述 打开损坏的结果文件会丢弃与所有列关联的所有下拉项.这个问题的可能解决方案是什么?任何帮助将不胜感激.

Moh*_*ani 5

您必须添加新工作表以将下拉项目插入添加到此工作表

 ExcelWorksheet ddList = excelPackage.Workbook.Worksheets.Add("DropDownList");
Run Code Online (Sandbox Code Playgroud)

现在将数据添加到第一列中的ddList

 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;
            }
Run Code Online (Sandbox Code Playgroud)

现在创建用于公式的地址

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);
Run Code Online (Sandbox Code Playgroud)

现在使用公式中的地址

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