2017-10-17 64 views
1

在我的应用程序中,需要创建一个应该具有自动完成功能的excel文件。假设我从数据库中提取了一些值“数据1”,“数据2”,取出后我想将这些值绑定到Excel的特定列。所以当用户键入东西时,会提示“数据1”,“数据2”...如何在Excel中创建自动完成?

如何实现此目的?需要帮助

回答

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中相同的效果):

enter image description here

+0

谢谢先生,知道了:) – Babai

相关问题