嵌入式Excel中面板问题C#

时间:2017-06-10 14:42:23

标签: c# excel

我尝试将excel嵌入到我的表单中。有一些问题。

我无法选择或编辑任何单元格。 我不能将excel大小与面板大小同步。 我可以在独立运行时删除标题栏,但在面板标题栏中运行时可以删除。 我无法禁用excel的调整大小。

此处代码:

namespace gomuluExcelDeneme
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        static Excel.Application xlApp;
        static Excel.Workbook xlWorkbook;
        static Excel.Worksheet xlSheet;
        static object Missing = System.Reflection.Missing.Value;

        [DllImport("user32.dll")]

        static extern IntPtr SetParent(IntPtr child, IntPtr newParent);

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Filter = "Excel Dosyası |*.xlsx";
            file.ShowDialog();
            string filePath = "";
            filePath = file.FileName;

            xlApp = new Excel.Application();
            xlWorkbook = xlApp.Workbooks.Open(filePath);
            xlSheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1);

            SetParent((IntPtr)xlApp.Hwnd, this.panel1.Handle);
            xlApp.WindowState=Excel.XlWindowState.xlNormal;
            xlApp.Height = panel1.Height-90;
            xlApp.Width = panel1.Width-130;
            xlApp.DisplayStatusBar = false;
            xlApp.ExecuteExcel4Macro("show.toolbar(\"ribbon\",false)");
            xlApp.Visible = true;

        }

        private void panel1_Resize(object sender, EventArgs e)
        {
            xlApp.Height = panel1.Height - 90;
            xlApp.Width = panel1.Width - 130;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try { xlWorkbook.Close(0); } catch { } 
            xlApp.Quit();
        }
    }
}

截图: https://github.com/IonDen/ion.rangeSlider/issues/171

1 个答案:

答案 0 :(得分:0)

我用DSO Framer Control解决了。