拜托了,高手指点一下,用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#