Vin*_*pin 2 validation excel c#-4.0 epplus epplus-4
我正在尝试在创建excel时添加下拉列表(列表验证),我已经找到了将其添加到整列的方法,但我的场景不同,因为我只将验证添加到除第一行和第二行之外的整列.
这是我到目前为止所尝试的:
public MemoryStream GetExcelSheet()
{
using (var package = new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Test");
var val = worksheet.DataValidations.AddListValidation("A:A");
val.Formula.Values.Add("Male");
val.Formula.Values.Add("Female");
val.ShowErrorMessage = true;
worksheet.Cells["A1"].Formula = null;
var stream = new MemoryStream(package.GetAsByteArray());
return stream;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使其无效:
worksheet.Cells["A1"].Formula = null;
Run Code Online (Sandbox Code Playgroud)
希望它会删除某个单元格上的验证,但它不起作用.
我也试过了
var val = worksheet.DataValidations.AddListValidation("A2:A");
Run Code Online (Sandbox Code Playgroud)
指定起始行号但生成的Excel文件已损坏.
对此有何帮助?
Phi*_*ker 12
ExcelCellBase有一个适当的扩展方法来从一个范围获取地址字符串:
public static string GetAddress(int FromRow, int FromColumn, int ToRow, int ToColumn)
Run Code Online (Sandbox Code Playgroud)
ExcelPackage有一个公共const MaxRows(1048576),您可以将其用于ToRow参数.
把这个放在一起为你的情况:
var range = ExcelRange.GetAddress(2, 1, ExcelPackage.MaxRows, 1);
var val = worksheet.DataValidations.AddListValidation(range);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5373 次 |
| 最近记录: |