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

最新文章

  1. 解决mysql too many connections的问题
  2. 将Centos的yum源更换为国内的阿里云源
  3. 用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示。
  4. 64-bit Tips
  5. [CLR via C#]18. Attribute
  6. 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记
  7. iOS定时器NSTimer的使用方法
  8. Part 82 to 85 Talking about Generic queue, stack collection class
  9. python中列表 元组 字符串如何互相转换
  10. Template、ItemsPanel、ItemContainerStyle、ItemTemplate
  11. vs调试windows mobile程序时布署时间太长的解决办法
  12. poj Organize Your Train part II
  13. python 字符转换
  14. spring中依赖注入与aop讲解
  15. FusionCharts封装-Value
  16. 随心测试_职场面试_001<SX的面试观点>
  17. C#之事件与eventArgs
  18. Input禁用文本框
  19. (转)[Python 网络编程] makefile (三)
  20. ubuntu 14.04 安装python包psycopg2

热门文章

  1. SciTE: 中文字符支持问题
  2. vs2010+Aspx进行sharepoint2010工作流开发(3) 资料整理
  3. 通过jquery,从json中读取数据追加到html中
  4. HashCode的理解
  5. 苹果 重置APPID密保问题及更新开发者协议
  6. MongoDB的文档、集合、数据库(二)
  7. .NET中CORS跨域访问WebApi
  8. MySql删除表、数据
  9. go实现的简易TCP的客户端和服务器
  10. geoserver 文件系统