描述:
请给我一个例子
解决方案1:
发信给我:xjliu_ustc@tom.com
解决方案2:http://www.fruitfruit.com/vc/activex/excelauto.cpp
解决方案3: #import "G:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL"
#import "G:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "G:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" rename("RGB", "ExcelRGB") rename("Delete","ExcelDelete") rename("DialogBox","ExcelDialogBox")
void Cexcel_picDlg::OnBnClickedOk()
{
// insert picture to excel
// environment: vc2003, excel2003, windows2003
using namespace Excel;
_variant_t covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
DWORD dwStartTime = GetTickCount();
_ApplicationPtr app;//("Excel.Application");
HRESULT hr = S_OK;
CLSID clsid;
CLSIDFromProgID(L"Excel.Application", &clsid);
app.CreateInstance(clsid);
WorkbooksPtr books;
_WorkbookPtr book;
long lcid =LOCALE_USER_DEFAULT;
SheetsPtr sheets;
app->get_Workbooks(&books);
book = books->Add(covOptional,lcid/*,&book*/);
book->get_Worksheets(&sheets);
IDispatchPtr pDisp;
sheets->get_Item(_variant_t((short)1),&pDisp);
_WorksheetPtr sheet(pDisp);
RangePtr range = sheet->GetRange(_variant_t("A1"),_variant_t("A1"));
range->Value2 = "aaa";
LPCSTR m_Path = _T("C:\\flower8.jpg");
PicturesPtr pics = sheet->Pictures();
pics->Insert(m_Path,VARIANT_FALSE);
app->put_AskToUpdateLinks(lcid,VARIANT_FALSE);
app->put_AlertBeforeOverwriting(lcid,VARIANT_FALSE);
app->put_UserControl(VARIANT_FALSE);
app->put_DisplayAlerts(0,VARIANT_FALSE);
LPCTSTR file_name = _T("c:\\aa.xls");
_variant_t varfilename(file_name);
DeleteFile(file_name);
HRESULT hrMethod = book->SaveAs(varfilename,covOptional,covOptional,covOptional,covOptional,covOptional,xlNoChange);
book->put_Saved(0,VARIANT_TRUE);
book->Close(COleVariant(VARIANT_FALSE));
books->Close();
app->Quit();
}