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();