我使用C++ 的方式调用excel的com接口, 在新增表格的时候会提示访问冲突,这个为什么呢 ?
#include "stdafx.h"
#include <atlcomcli.h>
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
_ApplicationPtr pExcelApp;
HRESULT hr = pExcelApp.CreateInstance(__uuidof(Excel::Application));
if(SUCCEEDED(hr))
{
pExcelApp->put_Visible(0, VARIANT_FALSE);
_WorkbookPtr pWorkbook = pExcelApp->Workbooks->Open(_T("C:\\Users\\pc\\Desktop\\2.xlsx"));
if(pWorkbook)
{
SheetsPtr sheets = pWorkbook->GetSheets();
_WorksheetPtr wSheet = (_WorksheetPtr)sheets->GetItem(1);
ChartObjectsPtr chartObjects = (ChartObjectsPtr)wSheet->ChartObjects(vtMissing);
ChartObjectPtr myChart = chartObjects->Add(100, 200, 400, 300);
_Chart* chart = myChart->GetChart();
chart->PutChartType(Excel::XlChartType::xlLine); //代码运行到此处会提示访问冲突
pWorkbook->Close();
pExcelApp->Quit();
}
}
::CoUninitialize();
return 0;
}