首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC读Excel2003文件有关问题

2012-03-02 
VC读Excel2003文件问题if(CoInitialize(NULL)0)//初始化COM库{AfxMessageBox(初始化COM失败!)//exit(

VC读Excel2003文件问题
if(CoInitialize(NULL)==0)//初始化COM库 
  { 
  AfxMessageBox("初始化COM失败!"); 
  //exit(1); 
  } 

strList.AddHead("123");

  CString strFilePath;
  CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "*.xls|*.xls||");
  if(IDOK != fd.DoModal())
  {
  return ;
  }
  strFilePath = fd.GetPathName(); 

  Range m_CurrentRange; 
  _Worksheet m_WorkSheet; 
  Worksheets m_WorkSheets; 
  _Workbook m_WorkBook; 
  Workbooks m_WorkBooks; 
  _Application m_ExcelApp; 

  // TODO: Add your control notification handler code here
  if(!m_ExcelApp.CreateDispatch(_T("Excel.Application"), NULL))
  {
  AfxMessageBox("创建Excel应用失败!");
  return ;
  }
  m_ExcelApp.SetVisible(false);
  //m_ExcelApp.AttachDispatch(m_ExcelApp.GetWorkbooks(), TRUE);
m_WorkBooks.AttachDispatch( m_ExcelApp.GetWorkbooks(), TRUE );
  LPDISPATCH lpDisp = NULL;
  COleVariant oleTrue((short)TRUE);
  COleVariant oleFalse((short)FALSE);
  COleVariant oleOption((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
  Range curCell;

  lpDisp = m_WorkBooks.Open(strFilePath,
  _variant_t(vtMissing), 
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing),
  _variant_t(vtMissing));

 
  
 
  m_WorkBook.AttachDispatch(lpDisp, TRUE);


程序运行到下一行发生错误!请高手点拨!谢谢。

  m_WorkSheet.AttachDispatch(m_WorkBook.GetActiveSheet(), TRUE);

  m_CurrentRange.AttachDispatch(m_WorkSheet.GetUsedRange(), TRUE);


[解决办法]
出现啥错误?
贴出来看看。。。。。。。。。。
[解决办法]
www.codeproject.com
输入 "VC Excel"
[解决办法]
_ApplicationPtrpApplication = NULL ;
_WorkbookPtrpThisWorkbook = NULL ;
_WorksheetPtrpThisWorksheet = NULL ;
SheetsPtrpThisSheets = NULL ;
RangePtrexcelRange = NULL ;


Excel::XlFileFormatvFileFormat ;
Excel::XlSaveAsAccessModevSaveAsAccessMode ;
Excel::XlSaveConflictResolution vSaveConflictResolution ;



pApplication.CreateInstance("Excel.Application");
pApplication->PutVisible (0,VARIANT_FALSE);
pThisWorkbook = pApplication->GetWorkbooks()->Add(strPathXlt.AllocSysString()) ;
pThisSheets = pThisWorkbook->GetWorksheets() ;
pThisWorksheet = pThisSheets->GetItem((short)1);
excelRange = pThisWorksheet->GetCells();

..............
....................

pThisWorkbook->SaveAs(strFile.AllocSysString(), 
(long)vFileFormat,
_variant_t(""),
_variant_t(""), 
_variant_t(false),
_variant_t(false), 
vSaveAsAccessMode, 
(long)vSaveConflictResolution, 
(long)_variant_t(false));



pThisWorkbook->Close();
pApplication->Quit();

热点排行