热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

(转)水晶报表设计和导出excel2

主要讲解了如何做一个基础的到处样式,本文在上文的基础上,实现类Excel的一个操作,就是单元格横向和纵向合并。以及加底色的效果,如下图以前文的基础进行改造1:横向单元格合并删除
主要讲解了如何做一个基础的到处样式,

本文在上文的基础上,实现类Excel的一个操作,就是单元格横向和纵向合并。以及加底色的效果,如下图


以前文的基础进行改造

1:横向单元格合并

删除掉后表头最后一个文本项


然后把前一个项目拉到与最后一个字段等宽,注意右边要对齐


预览一下


导出效果


很简单吧,呵呵

2:纵向合并

我们仅以第一列为例,每三行合并做一次合并。
其原理是这样的:
根据数据序号,当是3的倍数的时候,线条显示。如果不是3的倍数,线条就不显示。

示意图

在一个3行的区块内,把蓝色标识的两条线拿掉。

可能你不是太理解,继续往下看
选中第一列,点右键,格式化对象,在“边框”标签页上设置底边的边框后面的公式



上面绿色的注释是原来自带的
特别说明一下,考虑到可能数据不是3的倍数,那么最后一行可能就是空白了(线条被抑制显示掉了)
所以增加了一个onlastrecord的保护
onlastrecord是水晶报表中最后一条记录的标识。

设置好后看预览效果,我做了放大。注意每个行之间有个缝隙。
这就是这个方案的缺点。这个缝隙,就是我们线条设置为CrNoline后的空隙。
因为第1个字段跟后面的字段是等高的(包含边框的高度),去掉边框后,它就比后面的字段少了一条线的高度
于是空隙就出来了


(此问题在本文的最后已经得到完善)

导出来看一下,效果还是很好的,呵呵


合并单元格里的内容我没有改,因为这个数据不是太合适。
这个可进一步参考我之前写的《 如何实现中式报表的组名合并风格

3:加底色

按住Ctrl,选中详细资料节中要加底色的列。在其中一列上点右键
进入到图中所示的界面上,勾选背景色。点“更多”,选择一个合适的颜色


注意色盘中的颜色,右侧可以看到RGB值,记录下来 255,255,128


然后点确定,这时候所有的行都染色了。而且会出现压线的情况(部分竖线不见了)
先不管,先按照之前,把后面的字段依次移动到底层


然后继续将颜色限定在第3行,再次选中这几个字段,点右键,在出来的界面上,编辑"背景"后面的公式(x+2)

3的倍数的行上显示我们要的颜色,否则就不显示背景色,预览效果如下


再后面就简单了,在报表页脚上增加一个汇总和一个文本框,设置边框为:下右

设置好对齐(可参考前文的方法),然后设置其背景为我们要的颜色
预览效果如下


导出效果如下


有时候我们会发现,有些地方怎么对都对不齐,比如我们这个图,放大一点也可以看出来

而实际上,导出来的效果仍然是好的,这是设计器本身的问题

说明:
有时候对齐确实很困难,可以用设定属性的方法来更精确的定位,就是麻烦一些
点中某一字段,看属性里面,可以设置其:Top,width,Left,Height
注意这个Top是从每个节的左端点开始算起的,不是整个报表的左端点。


版本修订:
20090709:
很意外,没想到这个方案的最大问题,就是有间隙的问题,竟然被解决了。。。
解决方法:
因为线条在世纪导出Excel的时候是不导出的,
所以用在原来有空隙的位置上覆盖一条线,盖住原来的缝隙,


注意线条的起始端点位置。

显示效果如下:


这样既保证了显示效果,又不影响导出效果,非常不错。
推荐阅读
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Microsoft Office for Mac最新版本安装教程,亲测可用!
    本文介绍了Microsoft Office for Mac最新版本的安装教程,经过亲测可用。Office工具是办公必备的工具,它为用户和企业设计,可以利用功能强大的Outlook处理电子邮件、日历和通讯录事宜。安装包包括Word、Excel、PPT、OneNote和Outlook。阅读本文可以了解如何下载并安装Office,以及安装过程中的注意事项。安装完毕后,可以正常使用Office中的Word等功能。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • MATLAB函数重名问题解决方法及数据导入导出操作详解
    本文介绍了解决MATLAB函数重名的方法,并详细讲解了数据导入和导出的操作。包括使用菜单导入数据、在工作区直接新建变量、粘贴数据到.m文件或.txt文件并用load命令调用、使用save命令导出数据等方法。同时还介绍了使用dlmread函数调用数据的方法。通过本文的内容,读者可以更好地处理MATLAB中的函数重名问题,并掌握数据导入导出的各种操作。 ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • Office07:桌面办公软件的极品
    本文介绍了桌面办公软件Office07的优点,包括跟踪菜单功能、丰富的样式功能和Excel的制图功能。作者强调了对知识产权的尊重和保护的重要性。 ... [详细]
  • 如何用python pandas读取一个多层表头的excel,将多层表头转化为列?
    原始数据:期待的数据 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • Excel中超好用的5招条件格式图表可视化 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • Excel表格怎么添加子表格?
    很多用户在使用excel表格的时候,还不是很清楚表格的所有操作,今天有用户问小编怎么添加子表格,每次使用一张表格建一张新的,但是不懂得怎么操作,小 ... [详细]
author-avatar
wuke85394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有