var
  Form1: TForm1;
  EApp:variant;
implementation
uses ComObj, OleServer,Excel2000;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
     EApp:=CreateOleObject('Excel.Application');
     Windows.SetParent(EApp.HWND,Panel1.Handle);
     EApp.Workbooks.Open('C:\a.xls');
     EApp.Visible:=true;
end;

解决方案 »

  1. 上面方法不行呀,运行提示错误Methond Hwnd not suppered by automation,这个咋办呀?
      


  2. 就是嵌套在Form里面?这个难度不少啊,要有一个类似于grid的组件,然后要读入,为什么说难呢,因为读取的时候,要考虑合并单元格、特殊格式、数据类型等一系列的问题,还有一种是其他软件导出的EXCEL表,因为锁定了加了宏等原因,正常代码读取会异常。
      

  3. 用个导入导出的组件(类似excelio),把excel表格的内容导入到grid中。
    好多表格组件都可以导入excel数据,如quantumgrid之类的。
      

  4. 试试看ExpressSpreadSheet,devexpress里面的。 
      

  5. 在所用过的类似EXCEL表的Grid中,只有易君Grid,比较好用。它是国产控件,要花费的。
      

  6. OleContainer呀
    嵌一个excel进去
      

  7. 还有一种办法,以前我用过在RichEdit中,插入Excel对象。完全与Excel一样。
      

  8. 如果不需要编辑的话,用一个Office Viewer OCX控件可以实现显示word,excel,ppt文件,不过不能编辑,如果想编辑的话可以用EDOffice,不过需要点银子。Office Viewer OCX只支持2003格式的office文档。
      

  9. 这个没有测试,不好意思啊!Office Viewer OCX下载页面