当前位置:编程学习 > C#/ASP.NET >>

拜托了,高手指点一下,用axWebBrowser内嵌EXCEL的打印预览问题

代码是这样:

把EXCEL文件传给axWebBrowser:
string strFileName = @"c:\fami.xls";
Object refmissing = System.Reflection.Missing.Value;
axWebBrowser1.Navigate(strFileName, ref refmissing, ref refmissing, ref refmissing, ref refmissing);

这时就能显示出来了,但是窗口中只有表格,没有菜单和工具栏。为了需要打印预览和打印功能,于是在
axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
这个函数中加了如下代码:
try
{
    object refmissing = System.Reflection.Missing.Value;
    axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref refmissing, ref refmissing);
}
catch { }

工具栏出来了,点击打印按钮有反应,但是点击打印预览没有反应,于是又进行了进一步尝试,加一个按钮,直接通过代码调用打印预览,还是在axWebBrowser1_NavigateComplete2这个函数中:
Object o = e.pDisp;
Object oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
ExApp = (Excel.Application)oApplication; ExApp是类成员

在button_click函数中加入:
Workbooks workbooks = ExApp.Workbooks;
_Workbook workbook = workbooks.get_Item(1);
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
try
{
    ExApp.Visible = true;
    worksheet.PrintPreview(false);  //捕捉到异常,问题出现在这句
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

请高手指点下吧,先谢谢了,憋了N天了。 --------------------编程问答-------------------- 帮你置一下顶。希望有人帮助你
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,