ensure that Excel is visible and has an opened workbook (closes #10837)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -201,12 +201,36 @@ void MyFrame::OnTest(wxCommandEvent& WXUNUSED(event))
|
|||||||
wxAutomationObject excelObject, rangeObject;
|
wxAutomationObject excelObject, rangeObject;
|
||||||
if (!excelObject.GetInstance(_T("Excel.Application")))
|
if (!excelObject.GetInstance(_T("Excel.Application")))
|
||||||
{
|
{
|
||||||
|
// Start Excel if it is not running
|
||||||
if (!excelObject.CreateInstance(_T("Excel.Application")))
|
if (!excelObject.CreateInstance(_T("Excel.Application")))
|
||||||
{
|
{
|
||||||
wxMessageBox(_T("Could not create Excel object."));
|
wxMessageBox(_T("Could not create Excel object."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that Excel is visible
|
||||||
|
if (!excelObject.PutProperty(_T("Visible"), true))
|
||||||
|
{
|
||||||
|
wxMessageBox(_T("Could not make Excel object visible"));
|
||||||
|
}
|
||||||
|
const wxVariant workbooksCountVariant = excelObject.GetProperty(_T("Workbooks.Count"));
|
||||||
|
if (workbooksCountVariant.IsNull())
|
||||||
|
{
|
||||||
|
wxMessageBox(_T("Could not get workbooks count"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const long workbooksCount = workbooksCountVariant;
|
||||||
|
if (workbooksCount == 0)
|
||||||
|
{
|
||||||
|
const wxVariant workbook = excelObject.CallMethod(_T("Workbooks.Add"));
|
||||||
|
if (workbook.IsNull())
|
||||||
|
{
|
||||||
|
wxMessageBox(_T("Could not create new Workbook"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!excelObject.PutProperty(_T("ActiveCell.Value"), _T("wxWidgets automation test!")))
|
if (!excelObject.PutProperty(_T("ActiveCell.Value"), _T("wxWidgets automation test!")))
|
||||||
{
|
{
|
||||||
wxMessageBox(_T("Could not set active cell value."));
|
wxMessageBox(_T("Could not set active cell value."));
|
||||||
|
Reference in New Issue
Block a user