zoukankan      html  css  js  c++  java
  • dsoframer打开Excel解决独占的方法

    不要把控件直接拖到窗体上,而是使用代码New出来

    private AxDSOFramer.AxFramerControl axf_Excel = new AxDSOFramer.AxFramerControl();
    
    Thread thOpen ;
      private void ExcelCtrlEx_Load(object sender, EventArgs e)
            {
     thOpen = new Thread(new ThreadStart(FOpen));
                ((System.ComponentModel.ISupportInitialize)(this.axf_Excel)).BeginInit();
                axf_Excel.Dock = System.Windows.Forms.DockStyle.Fill;
                axf_Excel.Enabled = true;
                axf_Excel.Location = new System.Drawing.Point(0, 0);
                this.spc_Excel.Name = "spc_Excel";
               
    
                spc_Excel.Panel1.Controls.Add(axf_Excel);
                axf_Excel.Titlebar = false;
                axf_Excel.Menubar = false;
                axf_Excel.Toolbars = true;
    
                ((System.ComponentModel.ISupportInitialize)(this.axf_Excel)).EndInit();
                
                
                //启动现成加载EXCEL
                thOpen.Start();
    }
     private void FOpen()
            {
    
                lock (axf_Excel)
                {
                    try
                    {
                        axf_Excel.Open(m_strPagePathName, false, "Excel.Sheet", "", "");
                        xBook = (Workbook)axf_Excel.ActiveDocument;
                       // xSheet = (xBook.Worksheets[1]);
                        xSheet = (Worksheet)xBook.ActiveSheet;
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }
                   
                }
    
              
            }
    View Code

    1、直接使用代码加载,加载的只能是UserControl,或是只要显示的FORM,如果要是在FORM中嵌套FROM,则比被嵌套的FORM就必须设置显示层次,且必须要设置能为非顶级,如果设置为非顶级,着也会出现外部EXCEL无法编辑的情况

    2、加载的时候,使用异步线程加载,如果不使用,在打开多个时候,会有问题
    3、在做保存等操作的时候,使用委托异步操作。例如:
     

    MethodInvoker In = new MethodInvoker(SaveOnePage);
                this.BeginInvoke(In);
      private void SaveOnePage()
            {
                  try
                {
                    axf_Excel.Save(); 
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }
    

      

  • 相关阅读:
    java免费空间!最简单的openshift免费空间上传代码教程!和FTP一样简单!
    医疗大数据解决方案
    十大经典排序算法的JS版
    读取某个目录下的所有图片并显示到pictureBox
    一些植物查询的网站链接
    植物野外识别速查图鉴
    Winform改变Textbox边框颜色
    Microsoft Access数据库操作类(C#)
    自定义GroupBox
    ArrayList用法整理
  • 原文地址:https://www.cnblogs.com/zhangabo/p/4583663.html
Copyright © 2011-2022 走看看