如何在C#中打开一个excel文件,并在程序界面上显示出来?

时间:2022-09-29 15:08:50
本人是初学者,第一次发帖,还请达人不要见笑。
我要在C#中实现打开一个excel文件,并在程序的界面上显示出来,之前搜过一些方法,用dataset绑定,用datagrid显示,结果不能显示第一行,不能显示合并单元格的内容,不能显示文字(只能显示数字),效果不是很理想。
希望高手帮帮忙,我是初学,还请讲解的细致一点,小弟在此谢谢了!

4 个解决方案

#1


将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);

#2


谢谢楼上的回复,我回家试试看。
还有,怎么给分啊...

#3


如果是Web页面就更方便,本身IE就能显示Excel

#4


USEPC的方法没有问题

#1


将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);

#2


谢谢楼上的回复,我回家试试看。
还有,怎么给分啊...

#3


如果是Web页面就更方便,本身IE就能显示Excel

#4


USEPC的方法没有问题