在我的应用程序中,需要创建一个应具有自动完成功能的excel文件。假设我从数据库中获取一些值“Data 1”,“Data 2”,在获取之后我想将这些值绑定到excel的特定列。因此,当用户输入内容时,它会提示“数据1”,“数据2”......
如何实现这一目标?需要帮助
答案 0 :(得分:0)
您正在描述一项名为数据验证的功能。它的主要目的是将单元格的可能值限制在一定范围内,但正如您所发现的那样,这有一个方便的副作用,即Excel显示可用值的下拉。
您可以使用各种openXML库来执行此类操作,这些库允许您在.NET代码中创建.xlsx文件。我喜欢EPPlus可以让你做这样的事情:
static void Main(string[] args)
{
var fInfo = new FileInfo("output.xlsx");
using (var excel = new ExcelPackage())
{
var sht1 = excel.Workbook.Worksheets.Add("DataSheet1");
sht1.Cells[1,1].Value = "Occupation:";
var validation = sht1.DataValidations.AddListValidation("A2");
foreach(var allowedValue in GetAllowedValues())
{
validation.Formula.Values.Add(allowedValue);
}
excel.SaveAs(fInfo);
}
}
private static IEnumerable<string> GetAllowedValues()
{
return new string []{"Doctor","Baker","Candlestick Maker"};
}
这会给出您所指的下拉列表(我的screengrab来自LibreOffice,但您会在Excel中看到相同的效果):