1
在我的应用程序中,需要创建一个应该具有自动完成功能的excel文件。假设我从数据库中提取了一些值“数据1”,“数据2”,取出后我想将这些值绑定到Excel的特定列。所以当用户键入东西时,会提示“数据1”,“数据2”...如何在Excel中创建自动完成?
如何实现此目的?需要帮助
在我的应用程序中,需要创建一个应该具有自动完成功能的excel文件。假设我从数据库中提取了一些值“数据1”,“数据2”,取出后我想将这些值绑定到Excel的特定列。所以当用户键入东西时,会提示“数据1”,“数据2”...如何在Excel中创建自动完成?
如何实现此目的?需要帮助
您正在描述称为数据验证的功能。主要目的是将单元格的可能值限制在一定范围内,但正如您发现的那样,这具有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中相同的效果):
谢谢先生,知道了:) – Babai