我尝试将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();
}
}
}
答案 0 :(得分:0)
我用DSO Framer Control解决了。