0

我使用Add-In Express for .NET创建了一个 excel 插件,但似乎无法弄清楚如何仅在“活动”表上有一组数据时才显示我的功能区。

如果工作表在某行单元格中不包含某组数据,我想隐藏我的功能区,因为功能区上的按钮不适用于所有工作表。当用户在不同的工作表之间切换时,我想适当地隐藏/显示功能区。

我尝试使用该AddinInitialize事件,但这只会触发一次。我不想强迫用户直接打开 Excel 文件。他们应该能够打开 Excel,然后从“文件”菜单中选择文件。

这是我到目前为止所拥有的,但我不知道该放在哪里:

private void OnAddinInitialize(object sender, EventArgs e)
{
    // note: this does not work all the time!
    adxRibbonTab1.Visible = IsRibbonVisible();
}

private bool IsRibbonVisible()
{
    var worksheet = ActiveSheet;
    if (worksheet == null)
        return false;

    // only show ribbon when top row has certain column headings
    var reader = new WorksheetReader(worksheet);
    return reader.HasColumns(TopLeftCell, RequiredColumnNames);
}

我已经尝试创建一个ADXExcelWorksheetEvents实例并覆盖一些事件,但到目前为止我没有太多运气。对于这种类型的工作流程,我也无法在他们的网站上找到任何内容。

我会很感激任何帮助!

4

1 回答 1

0

我找到了答案。在AddinModule设计器上,我必须引用一个“事件”项目,然后我可以用我的IsRibbonVisible()函数捕获以下内容:

  • WorksheetActivated
  • WorksheetDeactivated
  • WorkbookActivated

问题解决了!

于 2019-02-15T18:29:53.867 回答