VC控制Excel打印预览问题求解答!!!急急急急急!!1
EIT王子 2012-07-28 06:11:55 UpdateData(true);
CApplication app;
CWorkbook book;
CWorkbooks books;
CWorksheet sheet;
CWorksheets sheets;
CRange range,ranges; //Range 表示元素的集合
CMyFont font;
//COleVariant covOptional((long)
COleVariant covTrue((short)TRUE),covFalse((short)FALSE),covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if (!app.CreateDispatch(_T("Excel.Application")))
{
this->MessageBox(_T("无法创建Excel应用!"));
return;
}
app.put_Visible(false);
books = app.get_Workbooks();
book = books.Add(covOptional);
sheets = book.get_Worksheets();
sheet = sheets.get_Item(COleVariant((short)1));
char CurrentProgramPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,CurrentProgramPath);
CString ExcelFilePathName = CurrentProgramPath;//ExcelFilePathName表示excel文件的路径和文件名
ExcelFilePathName+="\\数据报表文件夹";
ExcelFilePathName+="\\"+m_jm+"射孔计算数据报表.xls";
//打开指定Excel文件
book.AttachDispatch(books.Add(_variant_t(ExcelFilePathName)));
sheets = book.get_Sheets();
app.put_DisplayAlerts(FALSE);
app.put_Visible(true);
app.put_UserControl(TRUE);
book.PrintPreview(_variant_t(false));
//释放句柄
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
//关闭对象
book.Close(covFalse,COleVariant(ExcelFilePathName),covOptional);
books.Close();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.Quit();
app.ReleaseDispatch();
加入这三行代码后,可以预览出所读取得Excel文件,但是过大概五秒钟之后,当关闭预览界面后,就会出现提示框框由于excel没有响应,请结束响应,或切换问题,有三个按钮,切换,重试,取消,但是点那个按钮都不起什么作用,还关闭不了这个对话框。然后接着出现的对话框就是被调用对象已与客户端断开连接,求高人指点啊!!! app.put_Visible(true);
app.put_UserControl(TRUE);
book.PrintPreview(_variant_t(false));