首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>WINFORM>winform实现窗体嵌入并操作可视化Excel表格
winform实现窗体嵌入并操作可视化Excel表格
来源: 发布时间:2008-08-22 发布人: 浏览: 人次   字体: [ ]  

     本文讲的这个技术是把Excel表格嵌入到自己开发程序的Form窗体中进行操作,给客户一个不用切换窗口的操作界面,似乎更好。这在VC中用OLE技术很容易实现,但是在C#中方法就不一样啦。下面将就此进行阐述。

一、首先简要回顾一下如何操作Excel表

  先要添加对Excel的引用。选择项目-〉添加引用-〉COM-〉添加Microsoft Excel 9.0。(不同的office讲会有不同版本的dll文件)。
   using Excel;
   using System.Reflection;
  
   //产生一个Excel.Application的新进程
   Excel.Application app = new Excel.Application();
   if (app == null)
   {
    statusBar1.Text = "ERROR: EXCEL couldn''t be started!";
    return ;
   }
  
   app.Visible = true; //如果只想用程序控制该excel而不想让用户操作时候,可以设置为false
   app.UserControl = true;
  
   Workbooks workbooks =app.Workbooks;
 
   _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); //根据模板产生新的workbook
//  _Workbook workbook = workbooks.Add("c:\\a.xls"); //或者根据绝对路径打开工作簿文件a.xls

   Sheets sheets = workbook.Worksheets;
   _Worksheet worksheet = (_Worksheet) sheets.get_Item(1);
   if (worksheet == null)
   {
    statusBar1.Text =  "ERROR: worksheet == null";
    return;
   }

   // This paragraph puts the value 5 to the cell G1
   Range range1 = worksheet.get_Range("A1", Missing.Value);
   if (range1 == null)
   {
    statusBar1.Text =  "ERROR: range == null";
    return;
   }
   const int nCells = 2345;
   range1.Value2 = nCells;
 
二、将Excel用户界面嵌入到自己的Windows Form中

      由于目前,C#和vb.net都不支持OLE技术(参见微软支持中心Info:304562),,所以只有使用WebBrowser控件来完成此功能。(以下方法参见微软支持中心Howto:304662)
      1、右击工具箱,选择自定义工具箱,添加COM组件,选择“Microsoft Web 浏览器”(对应文件是\winnt\system32\shdocvw.dll),确定。在工具箱中将会出现文本为Explorer的WebBroser控件图标。
      2、在Form1中添加WebBrowser控件。(对象名却省是axWebBrowser1)
      3、假定要打开的excel文件是: c:\a.xls。
       string strFileName = @"c:\a.xls";
     Object refmissing = System.Reflection.Missing.Value;
     axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
    值得注意的是用WebBrowser控件不支持菜单合并,也就是说无法把Excel表的菜单带入到我们的程序中。这是相对于OLE实现方法的一大缺点。幸好提供了可以把工具栏添加进来的功能,通过工具栏可以进行许多Excel专有的操作。
     //下面这句可以将excel本身的工具调添加进来
    axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,ref refmissing , ref refmissing);
   
三、回到本文提出的问题,如何操作嵌入的Excel?


共2页: 上一页 1 [2] 下一页
相 关 文 章   发布商链接
·WNFORM实现窗体的DataGrid控件刷新
·WINFORM实现的用于拖放操作和文件复...
·WinForm下ListBox控件“设置DataSour...
·图解JFreeChart文字模糊问题的解决方...
·解决winform得不到GridView控件隐藏...
·Winform怎样判断一个窗体是否已被打...
·DataGridView控件如何实现分页的功能...
·在Winform中如何用正则表达式获取网...
·Winform窗体之间传值的几种方法总结...
·怎么在C#中编程判断是否安装了sql se...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·解决winform得不到GridView控
·winform实现的仿Msn移动提示...
·WinForm实现渐变窗体效果代码
·winform实现类似QQ滑动面板的
·asp.net中当按下回车键时响应
·WinForm中TextBox控件循环自...
·winform如何保持TreeView节点
·图解winform用户控件添加自定
·dataset.GetChanges()为什么...
·winform中DatagridView单元格
·WebBrowser中html元素如何触...
·winform中如何获得TextBox光...
·winform中通过设置钩子监视鼠
·Winform获取弹窗消息框中的文
·WinForm实现注册热键的代码
热 门 文 章
·asp.NET实现视频播放器功能代...
·winform中DatagridView单元格...
·在.net中利用webbrowser控件...
·使用C#制做进程监视器,可查看...
·WinForm编程开发实用技巧14则
·C#的简单图片透明处理代码以...
·如何实现winform自动点击webb...
·winform实现类似QQ滑动面板的...
·winform如何保持TreeView节点...
·如何做winform启动页面?
·图解winform用户控件添加自定...
·winform中如何获得TextBox光...
·Winform窗体之间传值的几种方...
·DataGridView控件如何实现分...
·asp.net中当按下回车键时响应...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .