excel 导出输出格式已经固定

1、当你输出的内容已经在输出的时候全部知道,并且输出格式已经固定,那么你就可以使用下面的方法输出,用if( (pfile = fopen(strFileName, "wb+")) != NULL)
打开EXCEL,然后在其中用fprintf写入,用\T到下一个单元格,用\n到下一行;适合输出内容固定,格式固定的内容。



[cpp]

void CRqEquipReqView::SaveDxcFileXLS(CString strFileName, BOOL bSaveAsAll) 
{ 
    FILE *pfile = NULL; 
    CString strGroupName; 
 
    CString strMain, strSlave; 
    CString strMainName, strMainCreateTime, strMainDirection, strMainCap, strMainStatus;  
    CString strMainSrc, strMainSrcAccess, strMainSrcConGroup; 
    CString strMainDst, strMainDstAccess, strMainDstConGroup; 
 
    CString strProName, strProCreateTime, strProDirection, strProCap, strProStatus; 
    CString strProSrc, strProSrcAccess, strProSrcConGroup; 
    CString strProDst, strProDstAccess, strProDstConGroup; 
 
    strMain.LoadString(IDS_RQNLPCT_MAIN); 
    strSlave.LoadString(IDS_RQNLPCT_SLAVE); 
    if(m_pRqGroup) 
    { 
        strGroupName = m_pRqGroup->GetName(); 
    } 
    int MainCount = m_lstDxc.GetItemCount(); 
    int ProCount = m_lstProtDxc.GetItemCount(); 
//参数中带'b'的话是以二进制文件形式打开文件, 否则是以文本文件打开. 
//以文本文件形式打开时, 值26就作为EOF了, 前者则不会. 
//如果不是保存成文本形式的话, 切记加上'b' 
//"a "模式在添加数据前并不清除EOF标志,添加数据后用MS-DOS的TYPE命令只能显示数据到原来EOF标志,而并不会显示后来添加的.  
//"a+ "模式会清除EOF标志,添加数据后,用MS-DOS的TYPE命令能显示所有的数据."a+ "模式需要以CTRL+Z EOF标志结束的流输入. 
    if( (pfile = fopen(strFileName, "wb+")) != NULL)  
    {    
        fprintf(pfile, strGroupName + "-" + strMain + "\n"); 
        CString strItem; 
        strItem.LoadString(IDS_RQSUBNET_DXCNAME); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_DXCCAP); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_DXCDIR); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_SRCCARD); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_SRCAP); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_SRCCONNECTGROUP); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_DSTCARD); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_DSTAP); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_RQSUBNET_DSTCONNECTGROUP); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_STATUS); 
        fprintf(pfile, strItem + "\t"); 
        strItem.LoadString(IDS_DXCCREATETIME); 
        fprintf(pfile, strItem + "\t\n"); 
 
        CRqNeDxc rqNeDxc; 
        for(int mainDxc = 0; mainDxc < m_lstDxc.GetItemCount(); mainDxc++) 
        { 
            int iDxcID = m_lstDxc.GetItemData(mainDxc); 
            if (!m_bSingle) 
            { 
                if(iDxcID < m_vRqNeDxcBiDsp.size())  
                { 
                    rqNeDxc = m_vRqNeDxcBiDsp[iDxcID];   
                } 
                else 
                { 
                    rqNeDxc = m_vRqNeDxcUniDsp[iDxcID - m_vRqNeDxcBiDsp.size()]; 
                } 
            } 
            else 
            { 
                rqNeDxc = m_vRqDxc[iDxcID]; 
            } 
            if(!bSaveAsAll && !rqNeDxc.GetSelected()) 
            { 
                continue; 
            } 
            strMainName = m_lstDxc.GetItemText(mainDxc, NAMECOL); 
            strMainCap = m_lstDxc.GetItemText(mainDxc, CAPCOL); 
            strMainDirection = m_lstDxc.GetItemText(mainDxc, DIRCOL); 
            strMainSrc = m_lstDxc.GetItemText(mainDxc, SRCCARDCOL); 
            strMainSrcAccess = m_lstDxc.GetItemText(mainDxc, SRCTU12COL); 
            strMainSrcAccess = "  " + strMainSrcAccess; 
            strMainSrcAccess += "  "; 
            strMainSrcConGroup = m_lstDxc.GetItemText(mainDxc, SRCCONGROUPCOL); 
             
            strMainDst = m_lstDxc.GetItemText(mainDxc, DSTCARDCOL); 
            strMainDstAccess = m_lstDxc.GetItemText(mainDxc, DSTTU12COL); 
            strMainDstAccess = "  " + strMainDstAccess; 
            strMainDstAccess += "  "; 
            strMainDstConGroup = m_lstDxc.GetItemText(mainDxc, DSTCONGROUPCOL); 
            strMainStatus = m_lstDxc.GetItemText(mainDxc, ENABLE); 
            strMainCreateTime = m_lstDxc.GetItemText(mainDxc, CREATETIME); 
 
            fprintf(pfile, strMainName + "\t"); 
            fprintf(pfile, strMainCap + "\t"); 
            fprintf(pfile, strMainDirection + "\t"); 
            fprintf(pfile, strMainSrc + "\t"); 
            fprintf(pfile, strMainSrcAccess + "\t"); 
            fprintf(pfile, strMainSrcConGroup + "\t"); 
            fprintf(pfile, strMainDst + "\t"); 
            fprintf(pfile, strMainDstAccess + "\t"); 
            fprintf(pfile, strMainDstConGroup + "\t"); 
            fprintf(pfile, strMainStatus + "\t"); 
            fprintf(pfile, strMainCreateTime + "\t\n"); 
        } 
        if(ProCount == 0) 
        { 
            CString strTmp; 
            strTmp.LoadString(IDS_NOPROTSERVICE); 
            fprintf(pfile, strGroupName + "-" + strSlave + "(" + strTmp + ")" + "\n"); 
        } 
        else 
        { 
            fprintf(pfile, strGroupName + "-" + strSlave + "\n"); 
        } 
        for(int proDxc = 0; proDxc < m_lstProtDxc.GetItemCount(); proDxc++) 
        { 
            int iDxcID = m_lstProtDxc.GetItemData(proDxc); 
            if (!m_bSingle) 
            { 
                rqNeDxc = m_vRqNeDxcUniDsp_ForProList[iDxcID]; 
            } 
            else 
            { 
                rqNeDxc = m_vRqDxc[iDxcID]; 
            } 
            if(!bSaveAsAll && !rqNeDxc.GetSelected()) 
            { 
                continue; 
            } 
            strProName = m_lstProtDxc.GetItemText(proDxc, NAMECOL); 
            strProCap = m_lstProtDxc.GetItemText(proDxc, CAPCOL); 
            strProDirection = m_lstProtDxc.GetItemText(proDxc, DIRCOL); 
            strProSrc = m_lstProtDxc.GetItemText(proDxc, SRCCARDCOL); 
            strProSrcAccess = m_lstProtDxc.GetItemText(proDxc, SRCTU12COL); 
            strProSrcAccess = "  " + strProSrcAccess; 
            strProSrcAccess += "  "; 
            strProSrcConGroup = m_lstProtDxc.GetItemText(proDxc, SRCCONGROUPCOL); 
             
            strProDst = m_lstProtDxc.GetItemText(proDxc, DSTCARDCOL); 
            strProDstAccess = m_lstProtDxc.GetItemText(proDxc, DSTTU12COL); 
            strProDstAccess = "  " + strProDstAccess; 
            strProDstAccess += "  "; 
            strProDstConGroup = m_lstProtDxc.GetItemText(proDxc, DSTCONGROUPCOL); 
            strProStatus = m_lstProtDxc.GetItemText(proDxc, ENABLE); 
            strProCreateTime = m_lstProtDxc.GetItemText(proDxc, CREATETIME); 
             
            fprintf(pfile, strProName + "\t"); 
            fprintf(pfile, strProCap + "\t"); 
            fprintf(pfile, strProDirection + "\t"); 
            fprintf(pfile, strProSrc + "\t"); 
            fprintf(pfile, strProSrcAccess + "\t"); 
            fprintf(pfile, strProSrcConGroup + "\t"); 
            fprintf(pfile, strProDst + "\t"); 
            fprintf(pfile, strProDstAccess + "\t"); 
            fprintf(pfile, strProDstConGroup + "\t"); 
            fprintf(pfile, strProStatus + "\t"); 
            fprintf(pfile, strProCreateTime + "\t\n"); 
        } 
        fclose(pfile); 
    } 
    else 
    { 
        CString strmsg; 
        strmsg.LoadString(IDS_CLOSEEXCEL); 
        AfxMessageBox(strmsg, 0, 0); 
    } 
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值