在vc++中調用Excel,怎樣設置單元格的格式可以得到科學計數法顯示,且保留兩位小數

refer   to   the   following.   it   display   number   in   string   format.  
  ///////////////////////////////////////////////////////////////////////////////////////  
  //change   cell   font   of   Excel  
  ///////////////////////////////////////////////////////////////////////////////////////  
  void   CC2Dlg::OnOK()  
  {//HOWTO:   Create   Automation   Project   Using   MFC   and   a   Type   Library     Q178749  
  //change   font   of   a   Cell   in   excel  
  try  
  {  
  _Application   app;           //   app   is   an   _Application   object.  
  _Workbook   book;               //   More   object   declarations.  
  _Worksheet   sheet;  
  Workbooks   books;  
  Worksheets   sheets;  
  Range   range;                     //   Used   for   Microsoft   Excel   97   components.  
  LPDISPATCH   lpDisp;         //   Often   reused   variable.  
  COleVariant  
  covTrue((short)TRUE),  
  covFalse((short)FALSE),  
  covOptional((long)DISP_E_PARAMNOTFOUND,   VT_ERROR);  
  if(!app.CreateDispatch("Excel.Application"))  
  {  
  AfxMessageBox("Couldn't   CreateDispatch()   for   Excel");  
  return;  
  }  
  app.SetVisible(TRUE);  
  lpDisp   =   app.GetWorkbooks();           //   Get   an   IDispatch   pointer.  
  ASSERT(lpDisp);  
  books.AttachDispatch(lpDisp);         //   Attach   the   IDispatch   pointer  
  //   to   the   books   object.  
  lpDisp   =   books.Open("C://temp//book1.xls",           //   Test.xls   is   a   workbook.  
  covOptional,   covOptional,   covOptional,   covOptional,   covOptional,  
  covOptional,   covOptional,   covOptional,   covOptional,   covOptional,  
  covOptional,   covOptional,   covOptional,   covOptional   );       //   Return   Workbook's   IDispatch  
  //   pointer.  
  book.AttachDispatch(   lpDisp   );  
  lpDisp   =   book.GetSheets();  
  ASSERT(lpDisp);  
  sheets.AttachDispatch(lpDisp);  
  //   Get   sheet   #1   and   attach   the   IDispatch   pointer   to   your   sheet  
  //   object.  
  lpDisp   =   sheets.GetItem(   COleVariant((short)(1))   );  
  ASSERT(lpDisp);  
  sheet.AttachDispatch(lpDisp);  
  lpDisp   =   sheet.GetRange(COleVariant("B3"),   COleVariant("b3"));  
  range.AttachDispatch(lpDisp);  
  range.SetNumberFormat(COleVariant("@"));  
  range.SetItem(COleVariant((long)(1)),COleVariant((long)(1)),COleVariant(LPCTSTR("000666")));  
  Font   newfont;  
  lpDisp=range.GetFont();  
  newfont.AttachDispatch(lpDisp);  
  newfont.SetName(COleVariant("宋體"));  
  newfont.SetSize(COleVariant((long)24));  
  newfont.ReleaseDispatch();  
  //   Release   dispatch   pointers.  
  range.ReleaseDispatch();  
  sheet.ReleaseDispatch();  
  //   This   is   not   really   necessary   because  
  //   the   default   second   parameter   of   AttachDispatch   releases  
  //   when   the   current   scope   is   lost.  
   
  }   //   End   of   processing.  
   
  catch(COleException   *e)  
  {  
                  char   buf[1024];           //   For   the   Try...Catch   error   message.  
                  sprintf(buf,   "COleException.   SCODE:   %08lx.",   (long)e->m_sc);  
                  ::MessageBox(NULL,   buf,   "COleException",   MB_SETFOREGROUND   |   MB_OK);  
  }  
  catch(COleDispatchException   *e)  
  {  
                  char   buf[1024];           //   For   the   Try...Catch   error   message.  
                  sprintf(buf,  
  "COleDispatchException.   SCODE:   %08lx,   Description:   /"%s/".",  
  (long)e->m_wCode,(LPSTR)e->m_strDescription.GetBuffer(512));  
                  ::MessageBox(NULL,   buf,   "COleDispatchException",  
  MB_SETFOREGROUND   |   MB_OK);  
  }  
  catch(...)  
  {  
                  ::MessageBox(NULL,   "General   Exception   caught.",   "Catch-All",  
  MB_SETFOREGROUND   |   MB_OK);  
  }  
  CDialog::OnOK();  
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章