C#写简单HTML报表

最近有需求是:如何用C#写好一个HTML文件。

本文例子是摄影测量空间后方交会程序报表的设计。

1、VTemplate下载使用

在下面网站上下载到VTemplate.Engine.dll 。C#引用导入。开头加上using VTemplate.Engine;

2、HTML模板制作

下面我所做的是简单空间后方交会报表的设计。用到HTML标签语言,下面有一些讲解。



     报表 



    

空间后方交会结果报表

spacerendezvous_report.html

原始数据表:

点序号 地面点坐标X 地面点坐标Y 地面点坐标z 像点坐标x 像点坐标y
{$:ControlPoint.Num} {$:ControlPoint.gcpX}米 {$:ControlPoint.gcpY}米 {$:ControlPoint.gcpZ}米 {$:ControlPoint.x}毫米 {$:ControlPoint.y}毫米

迭代过程:

第{$:i}次迭代计算的外方位元素:

Xs Ys Zs fai omi ka
{$:SpaceRendezvous_Tempdata.Xs}米 {$:SpaceRendezvous_Tempdata.Ys}米 {$:SpaceRendezvous_Tempdata.Zs}米 {$:SpaceRendezvous_Tempdata.fai}rad {$:SpaceRendezvous_Tempdata.omi}rad {$:SpaceRendezvous_Tempdata.ka}rad

最终结果:

Xs Ys Zs fai omi ka m0
{$:SpaceRendezvous_Results.Xs}米 {$:SpaceRendezvous_Results.Ys}米 {$:SpaceRendezvous_Results.Zs}米 {$:SpaceRendezvous_Results.fai}rad {$:SpaceRendezvous_Results.omi}rad {$:SpaceRendezvous_Results.ka}rad {$:SpaceRendezvous_Results.m0}

上述代码生成的结果如下图所示:

C#写简单HTML报表_第1张图片

VTemplate使用的地方是在地面点坐标通过C#导入到HTML。并通过VTemplate的语法规则显示出来。在使用迭代循环的时候,采用的语法则是使用  迭代内容   语法规则。其中的SpaceRendezvous_Tempdata 则是C#中的类。具体HTML语法可以在网上逐步学习HTML的教程一点一点添加学习。

3、C#接口控制

在C#接口处,需要定义SpaceRendezvous_Tempdata类元素:

   class SpaceRendezvous_Tempdata
    {
        public double Xs { get; set; }
        public double Ys { get; set; }
        public double Zs { get; set; }
        public double fai { get; set; }
        public double omi { get; set; }
        public double ka { get; set; }

        public double dXs { get; set; }
        public double dYs { get; set; }
        public double dZs { get; set; }
        public double dfai { get; set; }
        public double domi { get; set; }
        public double dka { get; set; }
    }

并在输出的位置用上代码:

TemplateDocument SpaceRendezvous_document = new TemplateDocument(System.Windows.Forms.Application.StartupPath + "\\SpaceRendezvous_Report.html", Encoding.UTF8, TemplateDocumentConfig.Default);
            SpaceRendezvous_document.Variables.SetValue("SpaceRendezvous_OriData", SpaceRendezvous_ControlPoints);
            SpaceRendezvous_document.Variables.SetValue("SpaceRendezvous_Tempdata", SpaceRendezvous_Tempdata);
            SpaceRendezvous_document.Variables.SetValue("SpaceRendezvous_ResultData", SpaceRendezvous_Results);
            SpaceRendezvous_document.RenderTo(System.Windows.Forms.Application.StartupPath + "\\后方交会报表.html", Encoding.UTF8);

其中SpaceRendezvous_ControlPoints、SpaceRendezvous_Tempdata、SpaceRendezvous_Results分别是

List、List、List类型。点位可以自己通过List.Add()函数设置添加。SpaceRendezvous_document.RenderTo(String Path,, Encoding.UTF8)输出即可。

4、结果显示

C#写简单HTML报表_第2张图片

5、总结

如果想利用C#做一个HTML文件。首先我们要自己能做一个(利用HTML语言设计出)的理想文件。里面的数据则是我们需要从C#导入到HTML模板中,数据导入操作等过程则是需要我们VTemplate库文件。下面需要解决的是我们如何要用VTemplate的语法规则将C#数据导入到HTML模板。那么就需要看具体的需求,如果需要用到迭代(比如我的需求是体现多次迭代的过程),则所用的VTemplate的HTML语法为  迭代内容   (不再赘述)。具体则需要看自己的需求,在网上搜索更多的VTemplate的HTML模板设计语法规则。本文章是入门帖,就写到这里。

你可能感兴趣的:(C#,C#,HTML)