0
私は自分のフォームにExcelを埋め込みしようとしています。いくつかの問題があります。パネルに埋め込まれたExcelでC#の問題が発生する
セルを選択または編集することはできません。 Excelのサイズとパネルのサイズを同期させることができません。 独立した実行時にタイトルバーを削除することはできますが、パネルタイトルバーのappersで実行すると削除できます。 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();
}
}
}
あなたのアプリがコンテナだった場合、OLEはこれを簡単に実行できます – MickyD