怎样才能设置我想要设置的excel表中某行的格式,如颜色,字体大小。我想对于各位高手来说不是什么难题了。网上复制的东西就不要贴了,除非验证过。我找了很多资料,都不尽人意。还有想另外问一下,我找的一个资料上这样写着
pThisRange->GetRange("A1:C1")->GetInterior()->ColorIndex = 47 ;(好像不能用,也可能是好我弄错了)
这代码中的颜色值分别标示什么意思,如颜色中的47,16这些值分别是什么颜色呢,难道不是用RBG格式吗??不懂。

解决方案 »

  1.   

    应该不是,
    前一阵子我也在搞这个,
    我是在csdn上下了两个工程,合并起来用的。
    颜色不清楚是怎么搞的,那个索引值大概是0到20,不是渐变的,搜一下,很多的,
      

  2.   

    哥告诉你一个办法,一般人我不告诉他。
    打开Excel,开启录制宏。
    进行你需要程序处理的步骤
    停止录制
    点击查看宏,看看VBA是如何做的。
      

  3.   

    咦~~~~~??
    你还开了两个帖子啊,把那个帖子上我的回复也给你贴这里,你看到哪个是哪个吧引用 5 楼 lyayfy 的回复:
    谢谢楼上的,你说的这个你有试过吗,我好像在网上看到过这个代码,但是好像不行,根本没有font这个属性你在类视图里选择导入类,然后选择TypeLib啥啥啥的(具体记不得了),然后选择Excel的库,把Font添加进去就可以了
      

  4.   

    是在类界面那添加类,然后选择TypeLib中的MFC类吗,然后在来源出选择文件选择到OFFICE的安装目录下,这里有一个OFFICE11和一个OFFICE12,我选了OFFICE11进去之后选到EXCEL.EXE,然后打开之后,界面左下列表内,就有你们说的那些类,我选择了Cnterior,和CFont0类,之后完成。完成之后类管理界面中有了这两个类,但是我用他们定义变量 CFont0 m_font; Cnterior m_inter; 又报“CFont0”: 未声明的标识符和“Cnterior”: 未声明的标识符错误,我想是不是没有包含头文件,然后我包含#include "CFont0.h"#include "Cnterior.h"两个头文件。这一下好,报了102个错误\cfont0.h(3) : warning C4278: “RGB”: 类型库“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”中的标识符已经是宏;使用“rename”限定符
    \cfont0.h(3) : warning C4278: “RGB”: 类型库“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”中的标识符已经是宏;使用“rename”限定符
    \cfont0.h(3) : warning C4192: 导入类型库“IFont”时自动排除“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”
    \projectsaferule\cfont0.h(3) : warning C4192: 导入类型库“IPicture”时自动排除“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”
    1>g:\cfont0.h(3) : warning C4278: “DialogBox”: 类型库“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”中的标识符已经是宏;使用“rename”限定符
    \cfont0.h(3) : error C2872: “Font”: 不明确的符号
     可能是“f:\vs2005\vc\include\comdef.h(310) : Font”
     或“f:\vs2005\vc\platformsdk\include\gdiplusheaders.h(244) : Gdiplus::Font”
    \cfont0.h(3) : error C2872: “Font”: 不明确的符号
    最多的就是这个错误或“f:\vs2005\vc\platformsdk\include\gdiplusheaders.h(244) : Gdiplus::Font”
    1>...\cfont0.h(3) : warning C4278: “CopyFile”: 类型库“C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE”中的标识符已经是宏;使用“rename”限定符
    1>...\cfont0.h(3) : error C2872: “Font”: 不明确的符号因为这个项目是我后来接手的,之前已经实现了excel的导出功能,只是要在现有的基础上对导出格式进行修改。所以是不是之前已经导入这些库了,还有,我在模块的CPP文件首部,发现了#include "excel.h"这个语句,我就确定了,现在大侠们能告诉我,现在这种情况,我要怎么进行调整能。谢谢了!
      

  5.   

    http://zhidao.baidu.com/question/40379986
      

  6.   

    设置格式很麻烦,提供几个片段代码供参考void CExcel::SetColor(LPCTSTR pszC0, LPCTSTR pszC1, long lColor)
    {
    //--GGBBRR
    Range range = m_Worksheet.GetRange(COleVariant(pszC0),COleVariant(pszC1)); 
    if(range == NULL) return ;
    Font   font = range.GetFont();
    if(font == NULL) return ;
    font.SetColor(COleVariant(lColor)); return ;
    }void CExcel::SetFont(LPCTSTR pszC0, LPCTSTR pszC1, LPTSTR pszFontName,long lSize)
    {
    Range range = m_Worksheet.GetRange(COleVariant(pszC0),COleVariant(pszC1)); 
    if(range == NULL) return ;
    Font   font = range.GetFont();
    if(font == NULL) return ;
    font.SetName(COleVariant(pszFontName));
    font.SetSize(COleVariant(lSize));
    return ;
    }
    void CExcel::SetBold(LPCTSTR pszC0, LPCTSTR pszC1, BOOL bBold)
    {
    Range range = m_Worksheet.GetRange(COleVariant(pszC0),COleVariant(pszC1)); 
    if(range == NULL) return ;
    Font   font = range.GetFont();
    if(font == NULL) return ;
    font.SetBold(COleVariant((long)bBold));
    return ;
    }
      

  7.   

    你们贴的代码,我都差不多能背了,问题是,我没有font类。这些都是我用了的,没有问题_Application ExcelApp;  Workbooks wbsMyBooks;  _Workbook wbMyBook;  Worksheets wssMysheets;  _Worksheet wsMysheet;  _Worksheet wsMysheet2;  Range rgMyRge; 
    Range rgMyRge2; Range rang_temp; 但是就是没有什么font interior类真奇怪,我包含的头文件是excel.h
      

  8.   

    我在我的类视图中找到_Font类,包含头文件之后,
    _Font m_font;
    m_font = rgMyRge.GetFont();
    if(m_font == NULL) return ;
    rang_temp.AttachDispatch(rgMyRge.GetCells()); 
    rang_temp.AttachDispatch((rang_temp.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal); 
    m_font.AttachDispatch (rang_temp.GetFont()); 
    m_font.SetColor((long)3);
    现在是不报错咯,但是运行到这里弹出找不到成员,我跟踪发现是m_font.SetColor((long)3);
    这一句的问题,但我查看了_Font里面却是有setcolor的成员函数阿??真奇怪咯,实在不是什么一个很难的东西,怎么就老出问题。。还请大家指点!!!
      

  9.   

    对于Excel并无研究,只是根据需要封装了部分需要的功能自用如上(CExel),经过大量使用,没有问题#include "excel9.h"
    #include <comdef.h>并将excel9.cpp加入到工程的源代码文件列表中
      

  10.   

    谢谢,我去试下,但是,好像已经包含了excel.h文件,我直接换成excel9.h有一两个函数的参数要改
      

  11.   

    我已经弄好了,网上的代码可以用。我的方法是,首先用V6.0新建一个项目,然后在添加类里面,_Application,Workbooks,_Workbook, Worksheets,_Worksheet,Range,Range,interior,font这些要用到的类添加进去,编译后,再用VS2005打开是可以的。但是我直接用VS2005新建的一个工程做试验,在类界面那添加类,然后选择TypeLib中的MFC类,然后在来源出选择文件选择到OFFICE的安装目录下,这里有一个OFFICE11和一个OFFICE12,我选了OFFICE11进去之后选到EXCEL.EXE,然后打开之后,界面左下列表内,就有那些_Application,Workbooks,_Workbook, Worksheets,_Worksheet,Range,Range,interior,font类,就不行,他只加入了这些类的头文件,编译的时候报错没有实现方法。因为,我是要在现有的项目上增加修改Excel格式功能,所以不可能再去用V6.0的先新建,然后VS2005去打开。想问下大侠们有遇到这种问题吗,怎么解决的?谢谢了。
      

  12.   

    你出现102个错误的那个问题,你这样看看能不能解决打开你包含的CFont0.h文件,在前几行有一个#import "C:\XXXXXX\XXXx......",你把这句话屏蔽掉试试。