zoukankan      html  css  js  c++  java
  • c# 创建Excel com加载项Ribbon动态加载工作簿和工作表

    使用 VSTO 创建外接程序,Gallery控件动态加载工作簿名称

    代码如下:

    加载工作簿名称:

            private void Gallery1_ItemsLoading(object sender, RibbonControlEventArgs e)
            {
                app = Globals.ThisAddIn.Application;
                gallery1.Items.Clear();
                int n = 1;
                foreach (excel.Workbook workbook in app.Workbooks)
                {
                    //RibbonGallery gallery = this.Factory.CreateRibbonGallery();
                    RibbonDropDownItem downItem = this.Factory.CreateRibbonDropDownItem();
                    downItem.Tag = workbook.Name + n.ToString();
                    gallery1.Items.Add(downItem);
                    downItem.Label = workbook.Name;
                    downItem.Image = Properties.Resources.Excel_32px_1185985_easyicon_net;
                    n++;
                }
            }

    选择子项目激活工作簿:

     private void Gallery1_Click(object sender, RibbonControlEventArgs e)
            {
    
                string tg = gallery1.SelectedItem.Label;
                //MessageBox.Show(tg);
                app = Globals.ThisAddIn.Application;
                excel.Workbook workbook = app.Workbooks[tg];
                workbook.Activate();
            }

    使用 VSTO 创建外接程序,dropDown控件动态加载工作表名称

    代码如下:

    加载工作表名称:

     private void DropDown1_ItemsLoading(object sender, RibbonControlEventArgs e)
            {
                try
                {
    
                    app = Globals.ThisAddIn.Application;
                    int n = 1;
                    dropDown1.Items.Clear();
                    foreach (excel.Worksheet worksheet in app.Worksheets)
                    {
                        RibbonDropDownItem downItem = this.Factory.CreateRibbonDropDownItem();
                        downItem.Tag = worksheet.Name + n.ToString();
                        dropDown1.Items.Add(downItem);
                        downItem.Label = worksheet.Name;
                        downItem.Image = Properties.Resources.office_excel_24px_1116424_easyicon_net;
                        n++;
                    }
                    if (app.ActiveWorkbook.Path != "")
                    {
                        RibbonDropDownItem downItem1 = this.Factory.CreateRibbonDropDownItem();
                        downItem1.Label = "打开工作簿所在文件夹";
                        dropDown1.Items.Add(downItem1);
                        downItem1.Image = Properties.Resources.folder_32px_1229424_easyicon_net;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }

    选择子项目激活工作表:

     private void DropDown1_SelectionChanged(object sender, RibbonControlEventArgs e)
            {
                try
                {
                    string tg = dropDown1.SelectedItem.Label;
                    //MessageBox.Show(tg);
                    app = Globals.ThisAddIn.Application;
                    if (tg == "打开工作簿所在文件夹")
                    {
                        string FilePath = app.ActiveWorkbook.Path;
                        string FileName = app.ActiveWorkbook.Name;
                        //System.Diagnostics.Process.Start(FilePath);
                        System.Diagnostics.Process.Start("Explorer.exe", "/select," + FilePath + "\" + FileName);
                    }
                    else
                    {
                        excel.Worksheet worksheet = app.ActiveWorkbook.Worksheets[tg];
                        worksheet.Protect(DrawingObjects: MsoTriState.msoTrue, Contents: MsoTriState.msoTrue, Scenarios: MsoTriState.msoTrue, AllowFiltering: MsoTriState.msoTrue, AllowUsingPivotTables: MsoTriState.msoTrue);
                        worksheet.Protect(DrawingObjects: MsoTriState.msoTrue, Contents: MsoTriState.msoTrue, Scenarios: MsoTriState.msoTrue, AllowFiltering: MsoTriState.msoTrue, AllowUsingPivotTables: MsoTriState.msoTrue);
                        worksheet.Protect(DrawingObjects: MsoTriState.msoTrue, Contents: MsoTriState.msoTrue, Scenarios: MsoTriState.msoTrue, AllowFiltering: MsoTriState.msoTrue, AllowUsingPivotTables: MsoTriState.msoTrue);
                        worksheet.Protect(DrawingObjects: MsoTriState.msoTrue, Contents: MsoTriState.msoTrue, Scenarios: MsoTriState.msoTrue, AllowFiltering: MsoTriState.msoTrue, AllowUsingPivotTables: MsoTriState.msoTrue);
                        worksheet.Unprotect();
                        worksheet.Visible = excel.XlSheetVisibility.xlSheetVisible;
                        worksheet.Activate();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
  • 相关阅读:
    前端常见跨域解决方案
    VS单元测试--初级篇
    高等数学思路
    二元函数求极值判别式AC-B^2
    向量积详解
    伯努利分布均值和方差
    两个标准正态随机变量相乘的方差
    a分位数与双侧a分位数
    中心极限定理概念理解与记忆
    样本方差概念解析
  • 原文地址:https://www.cnblogs.com/ty1216jhy/p/11044450.html
Copyright © 2011-2022 走看看