读书人

怎么用VC++来实现Excel文件的读取

发布时间: 2014-04-29 17:13:17 作者: rapoo

如何用VC++来实现Excel文件的读取
如何用VC++来实现Excel文件的读取?????

[解决办法]

C/C++ code
    CString strPath,strText="",strFile,name,table;    CFileDialog file(FALSE,NULL,"TestTab",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,        "EXCEL文件(*.xlsx)|*.xlsx| |",AfxGetMainWnd());    if(file.DoModal()==IDOK)    {        strPath=file.GetPathName();        if(strPath.Right(4) != ".xlsx")            strPath +=".xlsx";            _Application app;            Workbooks books;        _Workbook book;        Worksheets sheets;        _Worksheet sheet;        Range range;        COleVariant    covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);        //创建Excel 2000服务器(启动Excel)         if (!app.CreateDispatch("Excel.Application",NULL))         {             AfxMessageBox("创建Excel服务失败!");             exit(1);         } //    app.SetVisible(false);         //利用模板文件建立新文档         CString ExcelPath = path;        ExcelPath += "\\SQLToExcel";        books.AttachDispatch(app.GetWorkbooks(),true);         book.AttachDispatch(books.Add(_variant_t(ExcelPath)));        //得到Worksheets         sheets.AttachDispatch(book.GetWorksheets(),true);            //得到sheet1         sheet.AttachDispatch(sheets.GetItem(_variant_t("sheet1")),true);        range.AttachDispatch(sheet.GetCells(),true);         CString sText[]={"用户Id","姓名","联系电话","城市","小区"};        for(int setnum=0;setnum<m_Grid.GetItemCount()+1;setnum++)        {            for(int num=0;num<5;num++)            {                if(!setnum)                {                    range.SetItem(_variant_t((long)(setnum+1)),_variant_t((long)(num+1)),                        _variant_t(sText[num]));                }                else                {                    range.SetItem(_variant_t((long)(setnum+1)),_variant_t((long)(num+1)),                        _variant_t(m_Grid.GetItemText(setnum-1,num)));                }            }        }        sheet.SaveAs(strPath,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);    //    app.SetVisible(TRUE);         //释放对象         range.ReleaseDispatch();         sheet.ReleaseDispatch();         sheets.ReleaseDispatch();         book.ReleaseDispatch();         books.ReleaseDispatch();        app.ReleaseDispatch();     }
[解决办法]
看看这个
http://blog.sina.com.cn/s/blog_4504388f0100073f.html

读书人网 >VC/MFC

热点推荐