C# 在Asp Core 1.0中使用EPPLUS Core创建复选框下拉列表

C# 在Asp Core 1.0中使用EPPLUS Core创建复选框下拉列表,c#,asp.net,excel,epplus,C#,Asp.net,Excel,Epplus,我设法在另一张表中添加了一个填充了值的下拉列表,但它只允许我选择一个值 我有一个案例,我需要在EPPLUS中使用DataValidation选择多个值 例如,我如何添加复选框列表而不是简单的下拉列表 我试过了 var validationCell = sheet.DataValidations.AddListValidation("A1"); validationCell.Formula.Values.Add("a"); validationCell.Formula.Values.Add("b"

我设法在另一张表中添加了一个填充了值的下拉列表,但它只允许我选择一个值

我有一个案例,我需要在EPPLUS中使用DataValidation选择多个值

例如,我如何添加复选框列表而不是简单的下拉列表

我试过了

var validationCell = sheet.DataValidations.AddListValidation("A1");
validationCell.Formula.Values.Add("a");
validationCell.Formula.Values.Add("b");
validationCell.Formula.Values.Add("c");
但我只能选择一个复选框,例如,我需要选择多个复选框才能在一个数组中有多个值

那么,有没有办法让这个下拉复选框允许我选择多个值

我找到了一个直接在Excel中创建它的教程:

是否可以用EPPLUS Core做同样的事情


谢谢

您可以通过插入VBA代码来实现这一点:

请参见如何在中使用EPPlus执行此操作。您可以使用以下方法插入VBA代码:

package.Workbook.CreateVBAProject();
worksheet.CodeModule.Code = code;
下面的代码实现了这一点:

using (var package = new ExcelPackage(new System.IO.FileInfo("D:\\b.xlsm")))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("11");
            var validationCell = worksheet.DataValidations.AddListValidation("A1");
            validationCell.Formula.Values.Add("a");
            validationCell.Formula.Values.Add("b");
            validationCell.Formula.Values.Add("c");

            string code = "Private Sub Worksheet_Change(ByVal Target As Range)\n" +
"Dim Oldvalue As String\n" +
"Dim Newvalue As String\n" +
"Application.EnableEvents = True\n" +
"On Error GoTo Exitsub\n" +
"If Target.Address = \"$A$1\" Then\n" +
 " If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then\n" +
  "  GoTo Exitsub\n" +
  "Else: If Target.Value = \"\" Then GoTo Exitsub Else\n" +
   " Application.EnableEvents = False\n" +
    "Newvalue = Target.Value\n" +
    "Application.Undo\n" +
    "Oldvalue = Target.Value\n" +
    "  If Oldvalue = \"\" Then\n" +
     "   Target.Value = Newvalue\n" +
      "Else\n" +
       " If InStr(1, Oldvalue, Newvalue) = 0 Then\n" +
        "    Target.Value = Oldvalue & \", \" & Newvalue\n" +
      "Else: \n" +
       "         Target.Value = Oldvalue\n" +
      "End If\n" +
    "End If\n" +
  "End If\n" +
 "End If\n" +
"Application.EnableEvents = True\n" +
"Exitsub: \n" +
 "  Application.EnableEvents = True\n" +
"End Sub";

            package.Workbook.CreateVBAProject();
            worksheet.CodeModule.Code = code;
            package.Save();
        }

是的,但我的问题是如何从列表中删除项目?删除选定项时,验证将中断。这就是为什么我想在下拉列表中列出一系列复选框你说的删除选定项是什么意思?你能解释一下吗?例如,我选择了3个项目:1、2、3,如果我选择了“3”,并将其删除,只让“1、2”我有一个验证错误,因为值“1、2”不在值列表中,但我认为没关系,用户将删除单元格值并再次选择他需要的项目。^^谢谢