【问题标题】:Copy Excel DropDown from WorkBook to a new Workbook将 Excel DropDown 从工作簿复制到新工作簿
【发布时间】:2013-03-11 06:12:52
【问题描述】:

又是一个 Excel 问题。 我的客户向我发送了一个包含下拉列表(组合框)的 Excel 文件,我需要复制该组合框或使用里面的信息构建一个新的。 对于 excel,我发现下拉列表被命名为数据验证(我已经得到它,但对他无能为力)。

我有 Gembox dll 和 NativeExcel dll,但没有找到任何解决方案。

有了 GemBox,我已经得到了这个:

ExcelFile ef = ExcelFile.Load("Modelo_AA.xlsx");
ExcelWorksheet ws = ef.Worksheets[0];
ExcelFile efnovo = new ExcelFile();
ExcelWorksheet wsnovo = efnovo.Worksheets.Add("Hello");
DataValidationCollection dvc = ws.DataValidations;
DataValidation dv = dvc[0];
bool dd = dv.InCellDropdown; //here i get true

谢谢 安德鲁

编辑:我认为数据验证与下拉列表相关联!

Edit2:主要问题是将下拉列表从 WorkBook 复制到其他!

【问题讨论】:

  • 您想对源工作簿中的数据验证做什么?
  • 我认为数据验证与 dropdownliat 相关联。对吧!?
  • 一种数据验证是从列表中选择一个项目。即一个单元格只能有列表之外的值,因此它是在下拉列表的帮助下显示的。
  • 所以没有多少导入知道 DataValidation。我真正的问题是将下拉列表从工作簿复制到其他...谢谢
  • 打开源工作簿时,您会看到具有下拉列表的单元格显示项目列表。那些硬编码的 OR 是否来自工作簿中的某个范围?如何找到它 - 转到显示下拉列表的单元格,单击“数据”选项卡(在功能区上),单击“数据验证”->“数据验证...”。它会将“允许”显示为列表。 “来源”包含什么?

标签: c# excel vsto validation gembox-spreadsheet


【解决方案1】:

首先我想说的是,在您的情况下,DataValidation 与下拉列表相关联,因为它是 List 类型(请参阅 dv.Type 属性)。

还要将此列表 DataValidation 复制到另一个 excel 文件中,这将取决于 DataValidation 源,正如 shahkalpesh 在 cmets 中所述,它们可以是硬编码的,也可以来自单元格范围。您可以通过获取 dv.Formula1 对象来检查 DataValidation 的来源。 例如,如果它是硬编码的,那么 Formula1 将是这些列表项的数组,您可以将该 DataValidation 添加到另一个 ExcelFile:

wsnovo.DataValidations.Add(dv);

但是,如果 DataValidation 在 Formula1 中有一个单元格区域,那么您也必须将该单元格区域复制到一个新的 ExcelFile 中,或者您可以尝试读取该单元格区域中的单元格的值并将 Formula1 替换为硬编码物品清单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多