<DataFont DataFontName="宋体" DataFontSize="11" DataFontColor="Black" DataFontBold="True" DataFontItatic="False" DataFontHyperLink="False" DataFontPosition="Center">
</DataFont>
</RangeStyle>
</Ranges>
</ExcelStyle>
</Style>
这个XML中结点Excelstyle的属性Sort描述了整个Excel的格式是纵向的还是横向的(所谓纵向还是横向,我上面已有所说明),而属性Space则描述了报表每个记录的行与行之间空多少行。Ranges则是下面的所有子节点RangeStyle的父节点,对于一张报表通常会有很多的RangeStyle结点。RangeStyle其实就开始真正来描述哪个或哪些单元格来填写哪些字段,如结点Range 就定义了单元格高度,宽度,边框宽度,颜色这些属性。TitleCell就是定义了报表(因为我这张是纵向报表,所以有Title)Title的属性,如Title的名称,哪个单元格来填写这个名称。节点DataCell则定义了要帮定数据中的哪个字段,从哪个单元开始填写,单元格是否要合并,对齐方式,还有这个字段行与行之间的间隔。结点Title Font定义了Title字体属性,如大小,颜色,是否斜体,是否粗体,对齐方式。结点DataFont则定义了数据字体的属性,如大小,颜色,是否斜体,是否粗体,对齐方式。一个RangeStyle结点其实也就定义了一个字段的填写,如果你的报表要填写很多字段的话,就会有很多个RangeStyle结点来描述。这个xml样式定义文件可以自己写个工具来生成,我有现成的自己写的生成工具叫ExcelStyle,不过还很简陋,用起来还不方便,不过能生成我需要的样式,哪位需要我可以发给你们(我不知道怎么提供下载)。
2. XML描述文件和Excel模板相结合的方法,对于有些报表会很复杂,特别是那些横向的报表,有时候会极其复杂,这时就需要现成的Excel模板,有了Excel模板我们就可以参照着模板来生成xml样式定义文件,在具体生成报表的时候,我们只要知道用到的Excel模版是哪个,XML样式文件是哪个,再绑上我们的数据,那么即使再复杂的报表也同样能简单生成了。
具体使用,可参照如下测试用列代码(声明ExcelOperate,XmlOperate是我自己写的几个通用的组件,如有需要我可发邮件给你们,其中数据我是以DataTable的形式来描述的):
sing System;
using NUnit.Framework;
using ExcelOperate;
using XmlOperate;
using System.Data;
using System.Data.SqlClient;
namespace TestExcel
{
/// <summary>
/// </summary>
///
[TestFixture]
public class ExcelExport
{
[Test]
public void Export()//不用Excel模板的数据导出
{
strin
| 对此文章发表了评论 |

