zoukankan      html  css  js  c++  java
  • 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,一个保存应用程序中外观的配色,另外一个保存导出时的配色),与上述方法类似。

  • 相关阅读:
    字符串匹配常见算法(BF,RK,KMP,BM,Sunday)
    JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
    JUnit【1】断言用法之assertEquals/True/False/ArrayEquals
    软件测试基础配置
    前端入门20-JavaScript进阶之异步回调的执行时机
    前端入门19-JavaScript进阶之闭包
    前端入门18-JavaScript进阶之作用域链
    前端入门17-JavaScript进阶之作用域
    前端入门16-JavaScript进阶之EC和VO
    前端入门15-JavaScript进阶之原型链
  • 原文地址:https://www.cnblogs.com/westsoft/p/5962677.html
Copyright © 2011-2022 走看看