C#写简单HTML报表

C# 报表设计器 (winform 设计端)开发与实现生成网页的HTML报表 开放源码及调试 记得2000年之前,公司的项目基本上都要用到报表,以前我们常用的方法就是针对客户的需求来定制化开发(基本上是死写代码)来实现,经常导致项目经常性的延期,因为客户的需求经常会变化,随着用户的使用认知度的提高,对报表的要求越来越高,导致程序员不停的修改代码来实现,效率不高、结束遥遥无期。。。非常的痛苦;当然市面上有很多报表开发工具可以实现,但是针对小公司来说采购一套这样的系统的成本也非常的高,所以我们 阅读详情

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

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

1、VTemplate下载使用

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

2、HTML模板制作

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

<html>
<head>
    <title> 报表 </title>
</head>

<body>
    <p>
        <h1 align="center"><font color="red">空间后方交会结果报表</font></h1>
        <!--报表时间 -->
        <a href="spacerendezvous_report.html">spacerendezvous_report.html</a>

        <!--原始数据表 -->
        <h1><font size="4" color="red">原始数据表:</font></h1>

        <table style="width:80%;" bordercolor="#000000" align="center">
            <tbody>
                <tr>
                    <td>
                        点序号
                    </td>
                    <td>
                        地面点坐标X
                    </td>
                    <td>
                        地面点坐标Y
                    </td>
                    <td>
                        地面点坐标z
                    </td>
                    <td>
                        像点坐标x
                    </td>
                    <td>
                        像点坐标y
                    </td>

                </tr>
                <vt:foreach from="$SpaceRendezvous_OriData" item="ControlPoint" index="i">
                    <tr>
                        <td>
                            {$:ControlPoint.Num}
                        </td>
                        <td>
                            {$:ControlPoint.gcpX}米
                        </td>
                        <td>
                            {$:ControlPoint.gcpY}米
                        </td>
                        <td>
                            {$:ControlPoint.gcpZ}米
                        </td>
                        <td>
                            {$:ControlPoint.x}毫米
                        </td>
                        <td>
                            {$:ControlPoint.y}毫米
                        </td>
                    </tr>
                </vt:foreach>

            </tbody>
        </table>
        <br />

        <!--迭代过程 -->
    <h1><font size="4" color="red">迭代过程:</font></h1>
 <vt:foreach from="$SpaceRendezvous_Tempdata" item="SpaceRendezvous_Tempdata" index="i">
    <table style="width:80%;" bordercolor="#000000" align="center">
        <tbody>
            <tr>
                <td>
                    Xs
                </td>
                <td>
                    Ys
                </td>
                <td>
                    Zs
                </td>
                <td>
                    fai
                </td>
                <td>
                    omi
                </td>
                <td>
                    ka
                </td>
            </tr>
           
                <tr>
                    <td>
                        {$:SpaceRendezvous_Tempdata.Xs}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Tempdata.Ys}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Tempdata.Zs}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Tempdata.fai}rad
                    </td>
                    <td>
                        {$:SpaceRendezvous_Tempdata.omi}rad
                    </td>
                    <td>
                        {$:SpaceRendezvous_Tempdata.ka}rad
                    </td>
                </tr>
		<p align="left"><font size="3">第{$:i}次迭代计算的外方位元素:</p>
            </vt:foreach>
        </tbody>
    </table>
	
	<!--最终结果 -->
    <h1><font size="4" color="red">最终结果:</font></h1>
	
 <!-- <vt:foreach from="$SpaceRendezvous_ResultData" item="SpaceRendezvous_Results" index="i"> -->

    <table style="width:80%;" bordercolor="#000000" align="center">
        <tbody>
            <tr>
                <td>
                    Xs
                </td>
                <td>
                    Ys
                </td>
                <td>
                    Zs
                </td>
                <td>
                    fai
                </td>
                <td>
                    omi
                </td>
                <td>
                    ka
                </td>
				<td>
                    m0
                </td>
            </tr>
           
                <tr>
                    <td>
                        {$:SpaceRendezvous_Results.Xs}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Results.Ys}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Results.Zs}米
                    </td>
                    <td>
                        {$:SpaceRendezvous_Results.fai}rad
                    </td>
                    <td>
                        {$:SpaceRendezvous_Results.omi}rad
                    </td>
                    <td>
                        {$:SpaceRendezvous_Results.ka}rad
                    </td>
				    <td>
                        {$:SpaceRendezvous_Results.m0}
                    </td>
                </tr>				
         <!-- </vt:foreach> -->   						
        </tbody>
    </table>
    </p>
</body>
</html>

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

VTemplate使用的地方是在地面点坐标通过C#导入到HTML。并通过VTemplate的语法规则显示出来。在使用迭代循环的时候,采用的语法则是使用<vt:foreach from="$SpaceRendezvous_Tempdata" item="SpaceRendezvous_Tempdata" index="i">  迭代内容  </vt:foreach> 语法规则。其中的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<SpaceRendezvous_OriData>、List<SpaceRendezvous_Tempdata>、List<SpaceRendezvous_ResultData>类型。点位可以自己通过List.Add()函数设置添加。SpaceRendezvous_document.RenderTo(String Path,, Encoding.UTF8)输出即可。

4、结果显示

5、总结

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

C# RDLC ReportView 报表小Demo STEP3-报表文件关联对象 ,右键新建数据集-》选择数据源来自对象-》修改名称可以根据项目需求来修改,此处是直接默认值DataSet1,数据源来自项目:RrportViewTest,数据源来自对象TestDataMode;翻译看看是啥意思,说明我new的对象不是System.Data类型,再在网上找找看别人是怎么写的。STEP1-创建报表文件.Report1.rdlc :添加-新建项-报表(注意是繁体字)1、 单击菜单栏-工具选项-》管理扩展 ,右侧窗口输入rdlc ,点击安装。STEP4-编辑表格。 阅读详情

相关推荐

c# vs2013 制作水晶报表并导出为 pdf

我这里是一个已经画好的表格,在页眉部分用到了分组功能,(为了让表格头不循环,表格体 列要循环显示,就将表的id作为分组名 来达到这样的目的)。在.rpt报表文件页面,先将刚刚创建的DataSet的表导进来。创建好后,在页面右击Add-DataTable添加表,更改datatable的名称,同样在表内右击Add-Column添加列,输入列明(自定义)我的连接-DataSet1-Packing,点击>按钮,将该datatable表导进来,确定。一两年前接触的,当时没有记录,现在把他写下来。

qq_41942913的博客 2313

C# 制作Excel报表

制作Excel报表

3068

视频教程-C#Winform水晶报表实例教程-C#

C#Winform水晶报表实例教程 二十多年的企业管理软件开发经历,熟知管理...

weixin_33546080的博客 755

使用C#设计报表

这里写目录标题1、获取数据集2、配置报表 1、获取数据集 第一步:创建一个C#窗体应用 第二步:右键项目,选择“添加”-“新建项”,选择数据集,点击添加报表用到的数据 第三步:在右侧选择“服务器资源管理器”,右键数据连接,选择“添加连接”, 第四步:我选择的是mysql,可以根据需要更改数据库类型 选好了,点击确定即可 第五步:然后在右侧工具箱,把TableAapter拉到右侧 第六步:配置TableAapter数据库连接,一般拖过来后自动进入到配置界面 如果点击下一步报错 mysql.data.

qq_42884482的博客 5745

C#.NET中水晶报表到HTML导出示例代码

水晶报表(Crystal Reports)是一款功能强大的报表设计工具,广泛应用于企业级应用中用于生成各类报表。当需要将这些报表分享给外部人员或者用于Web展示时,导出为HTML格式变得尤为重要。HTML格式不仅便于在浏览器中查看,也方便通过电子邮件进行分发,并且能够与各种Web页面无缝集成。本章将对水晶报表的基础知识进行简要介绍,并概述如何将报表导出为HTML格式。我们会探讨导出过程中可能遇到的一些常见问题,并为解决这些问题提供初步指导。

weixin_42579969的博客 916

C#报表开发实战:从基础到高级

C#报表开发是企业信息系统建设中不可或缺的一部分,它允许开发者创建高度定制化的数据展示工具,以满足不同的业务需求。本章将为读者提供C#报表开发的基础知识,包括开发环境的搭建、报表开发流程、以及一些基本概念的解释。我们将从C#语言的特点开始讲起,如何在.NET框架中利用C#进行报表的构建和展示,接着深入到报表工具的选择和报表项目的生命周期管理。通过本章,读者可以了解C#报表开发的核心要素,并为后续章节的学习打下坚实的基础。

weixin_32661831的博客 1059

如何导出HTML格式的报表

Stimulsoft Reports.Ultimate是.NET框架下最全面的报表解决方案,支持多种报表导出格式,拥有简单且强大的报表引擎,此示例显示如何从代码将报表导出为HTML格式。需要创建StiReport类型的报表对象,然后通过调用loadFile()方法加载报表模板文件。在此之后,应该通过调用报表对象的  render()方法来呈现报表:// Create a new report in...

xiaochuachua的博客 2641

C#报表设计器:效率与功能并重的报表解决方案

在当今的数据驱动的业务环境中,报表设计器成为了一个不可或缺的工具,它允许用户以图形化的方式快速创建和修改报表。本章将对C#报表设计器的核心功能进行介绍,为读者提供一个全面的概览。C#报表设计器为开发者提供了一个用户友好的界面,使他们能够直观地设计报表布局,选择合适的报表元素,并将其与数据源连接。设计师可以轻松地添加表头、图表、数据表格、交叉表等多种报表元素,并对它们的样式和布局进行个性化设置。在C#报表设计器中,界面布局的个性化定制是提升用户体验的关键。

weixin_35649491的博客 959

C#上使用Echarts做报表

C#上使用Echarts做报表 .cs文件拖入控件 使用C#自带的内置网页控件 WebBrowser 在.cs文件中,对该内置页面进行属性设置 //设置Com对外可访问 (在 .cs 文件中进行修改) [System.Runtime.InteropServices.ComVisible(true)] //放在命名空间和类的中间(与class 同等级) internal static void SetWebBrowserFeatures(int ieVersion) {

tabcam的博客 2333

最新C#水晶报表设计与实战项目

水晶报表的文档结构由多个“节”(Section)组成,每个节对应特定的打印或显示时机。这些节按照执行顺序排列,形成一个完整的页面生命周期。主要包含以下几类关键区域::仅在整个报表开始前输出一次,适用于放置标题、公司Logo、报告说明等全局静态信息。:每一页顶部重复出现,常用于列名表头,保证阅读连续性。:当启用分组功能时,该节会在每一组数据开始前渲染,适合展示分类标签(如部门名称、月份等)。Details:核心数据行区域,每条记录在此节中生成一行输出。

weixin_34547628的博客 875

C# 实现货物入库单报表打印的详细教程

报表打印作为企业信息管理和决策支持的关键组成部分,对C#开发者来说具有不可忽视的行业重要性。它不仅涉及到数据的准确展示,还包括数据的及时更新、格式化输出,以及用户交互体验等多个方面。随着企业信息化程度的提升,C#报表打印的灵活性、可扩展性和用户体验成为衡量一个信息系统成熟度的重要标准。报表是信息系统的重要组成部分,它提供了一种将数据信息以书面形式展示给用户的方式,使用户能够迅速理解和分析数据。报表的类型多样,可以根据不同的标准进行分类。常见的报表类型有:总结性报表。

weixin_42511832的博客 973

视频教程-C#Winform自带的RDLC报表实例教程-C#

C#Winform自带的RDLC报表实例教程 二十多年的企业管理软件开发经历...

weixin_33760178的博客 842

C#开发者的FastReport.net报表设计与标签打印教程

FastReport.net是报表开发工具,支持多种数据库和输出格式。它能够快速生成报表,并且以插件的形式集成到Visual Studio开发环境中。该工具提供了可视化设计界面,简化了报表的创建和管理过程。FastReport 设计器提供了一个直观、可视化的界面,允许开发者通过拖放组件的方式来设计报表。界面主要由以下几个部分组成:工具箱(Toolbox):这里列出了所有可用的报表组件,如文本框、列表、图表等。设计区域(Design Surface)

weixin_35903223的博客 1414

如何将html转为report,如何使用XtraReport将报表导出为HTML

下面的示例将演示如何使用XtraReport将报表导出为HTML,首先需要在项目中添加一个新的报表(XtraReport1),并将报表控件拖放在项目中,然后执行下面的代码。C#using System.Drawing;using System.Diagnostics;using DevExpress.XtraPrinting;using DevExpress.XtraReports.UI;// ....

weixin_35510737的博客 302

C# RDLC报表开发实战资源包(含动态生成、子报表、钻取等完整示例)

在.rdlc设计器中右键 → 报表参数 → 添加。或者直接编辑XML:<Prompt>开始日期</Prompt><Values></Values><Prompt>选择区域</Prompt>这里有几个实用技巧:支持表达式,比如=Today()=User!LanguageAllowBlank和Nullable控制是否允许空值可绑定静态列表或查询结果(下拉选项)你可能会问:现在都2025年了,为啥还要用RDLC?

weixin_42613360的博客 833

C#报表程序设计:拖动打印功能详解及源码解析

C#报表程序是一种利用C#语言编写的软件应用,其核心功能在于将数据以图表、表格等形式直观展示,以满足企业或组织的报告需求。这种程序在数据分析、财务统计、销售记录等方面应用广泛,能够帮助用户快速生成、编辑和打印各类报表。本章针对C#报表程序的性能优化与调试提供了深入的探讨,从性能测试与瓶颈分析到调试技巧与常见问题解决,每一方面都力求提供实用的技术和方法。通过这些高级技巧的应用,开发者可以显著提升报表程序的性能,确保程序稳定可靠地运行,从而满足用户的需求和期望。

weixin_32312889的博客 644

视频教程-C#Winform报表与打印技术——自定义报表的实现-C#

C#Winform报表与打印技术——自定义报表的实现 二十多年的企业管理软件...

weixin_30559649的博客 768

C#生成html静态页面示例

C#生成html静态页面示例,简单易懂。解压后直接配置成网站就可以用了。里面有些参数说明,还得根据你自己的需求就行修改,代码只是让你知道生成的原理。

上一篇: C#连接Excel
下一篇: 在python3.6环境下安装opencv-contrib-python3.4.3.18
BoostingIsm
博客等级 码龄11年 5908粉丝 29原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoostingIsm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值