• CxGrid导出Excel时清除颜色的设置


    CxGrid导出Excel时清除颜色的设置

     (2011-04-25 16:33:23)
    标签: 

    it

     
    分类: Delphi

    http://www.radxe.com/?p=170

    cxgrid导出到Excel是“所见即所得”模式的,应用程序中显示的颜色在导出时也会被设置到Excel,但很多时候导出的Excel是期望不包含色彩信息的,所以必须在导出时将cxgrid的颜色设置清除。cxgrid表格各个部分的颜色可以通过在view的styles中设置,未设置styles时cxgrid会使用默认色(灰色)渲染bandheader,footer等部分。所以要清除颜色除了将定义了style的表格部分的style清空外,还得为bandheader,footer等使用了默认色的部分设置一个合适的style。

    以下是范例代码:

     //导出Excel
    procedure TFrmBaseReport.SpbExcelClick(Sender: TObject);
    begin
      try
        clearStyles;
        exportCXGridToExcel;
      finally
        resetStyles
      end;
    end;
     
    //清除样式
    procedure TFrmBaseReport.clearStyles;
    begin
      cxView.Styles.BandHeader := stWhite;
      cxView.Styles.Header := nil;
      cxView.Styles.ContentOdd := nil;
      cxView.Styles.ContentEven := nil;
      cxView.Styles.Footer := stWhite;
    end;
     
    //重置样式
    procedure TFrmBaseReport.resetStyles;
    begin
      cxView.Styles.BandHeader := stBandHeader;
      cxView.Styles.Header := stHeader;
      cxView.Styles.ContentOdd := stContentOdd;
      cxView.Styles.ContentEven := stContentEven;
      cxView.Styles.Footer := stFooter;
    end;
     
    //cxgrid数据导出到Excel
    procedure TFrmBaseReport.exportCXGridToExcel(infoEmpty:boolean);
    var
      fileName : String;
    begin
      cxView.OptionsView.Header := false;
      try
        fileName := getTempFileName;
        ExportGrid4ToExcel(fileName,cxGrid);
        shellOpen(fileName+FILE_EXT_XLS);
      finally
        cxView.OptionsView.Header := true;
      end;
    end;

    备注:stBandHeader,stHeader,stContentOdd,stContentEven,stFooter,stWhite是表格各个部分对应的配色方案,可以TcxCustomGridView.styles中设置,stWhite是白色背景黑色文字的配色方案。Dev官网上对这个问题给出的方案是通过应用两个样式表实现的(TcxCustomGridView.Styles.StyleSheet,一个保存应用程序中外观的配色,另外一个保存导出时的配色),与上述方法类似。

  • 相关阅读:
    EasyNVR平台使用Onvif探测设备时的操作注意事项
    视频平台EasyNVR更新版本后视频播放不了,识别不了js是什么原因?
    EasyNVR配置连接EasyNVS无法连接,报错timeout是什么原因?
    wNAF不相邻表示形式
    密码的前情知识
    64位编译器下基本数据类型所占字节数目
    gitlab禁止用户自己删除帐号
    Python中类创建和实例化过程 勿忘
    Qt5msvc2012编译安装
    kubuntu中ibus选词窗口不能正常弹出问题人解决办法
  • 原文地址:https://www.cnblogs.com/westsoft/p/5962677.html
Copyright © 2020-2023  润新知