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());
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM