使用EPPlus创buildcheckbox的下拉列表
我正在使用EPPlus( http://epplus.codeplex.com/ )在我的ASP.NET应用程序中创buildExcel文件。 我想知道是否有人知道是否可以在一个单元格中创build一个带checkbox的下拉列表。 我已经检查过这个文档,但是到目前为止还没有发现。 我也尝试了谷歌search,但还没有find正确的方向。
在他们的论坛上这个问题其实是一个很好的示范,我正在寻找,但它没有收到任何答案: http : //epplus.codeplex.com/discussions/585879
有没有人碰巧有任何想法,可以指向正确的方向?
您可以使用:
var validationCell = sheet.DataValidations.AddListValidation("A1"); validationCell.Formula.Values.Add("a"); validationCell.Formula.Values.Add("b"); validationCell.Formula.Values.Add("c"); ...
但是您只能select一个值。 我认为excel不支持多个值。
对于其他人的参考,这里是我如何可以启用多个值select:
通过插入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(); }