c#遍历一个对象的字段信息
c#遍历对象字段
场景:有一个对象作为导出word段落的数据、每一个字段就代表一个段落,可以对相应段落数据设置样式(字体、颜色、加粗……)
参考文献:(12条消息) C#获取实体类字段信息PropertyInfo,字段名称,字段值,字段属性标签_棉晗榜的博客-CSDN博客_c# t实体获取某个字段的值
1、对象
public class WordData
{
/// <summary>
/// 教室名称
/// </summary>
public string cName { get; set; }
/// <summary>
/// 教室编号
/// </summary>
public string cId { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Rank { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 二维码
/// </summary>
public FileStream QRStream { get; set; }
}
2、获取属性中的段落信息
//获取这个类的字段信息
PropertyInfo[] props = typeof(WordData).GetProperties();//实体的字段列表

3、遍历对像相应字段(一个字段代表一个段落,一行)做逻辑处理
FileStream fileStream=null;//二维码
string Text = "";//文本
for (var j = 0; j < props.Count(); j++)
{
//如果字段名不是QRStream
if (props[j].Name != "QRStream")
{
Text = props[j].GetValue(w) as string;
}
else
{
//图片stream
fileStream = props[j].GetValue(w) as FileStream;
}
…………………… 接下来对其做逻辑处理
}
4、最终效果
数据是这个样子的
string FilePath = System.AppDomain.CurrentDomain.BaseDirectory + "Img";
FilePath = FilePath + "/QR.png";
FileStream fs = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Read);
WordData w = new WordData() { cName= "[房间1]" , cId="14985"+1,Rank= "请扫描二维码进行故障报修。关注公众号,可随时了解当前进度",Phone= "报修热线:14541524124", QRStream=fs};
通过逻辑处理后导出word效果 :(WordData提供的文本和图片stream)
导出word使用NPOI插件,参考博客:.Net Word操作之NPOI - じ逐梦 - 博客园 (cnblogs.com)

c#遍历一个对象的字段信息的更多相关文章
- 有遍历struct中字段信息的函数或方法
例:struct a{int a;char b[10];double c;}; 在程序中只知道一个结构 a 的指针, 有没有函数能通过结构的名字 和 指向结构的指针 随次得到 结构中的变量类型 和 变 ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- mysql导出数据库表名与字段信息
一.导出数据库表格信息 #mysql导出库的表格信息 SELECT A.TABLE_SCHEMA, A.TABLE_NAME, A.TABLE_ROWS, A.CREATE_TIME, A.TABLE ...
- MySQL获取Schema表名和字段信息
MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,U ...
- sqlite查看所有表名、判断表是否存在,字段名及字段信息
sqlite查看所有表名.判断表是否存在,字段名及字段信息 sqlite查看所有表名及字段名查询table,type 段是'table',name段是table的名字, select name f ...
- 查询mysql所有表数据、字段信息
根据库名获取所有表的信息 SELECT * FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'erp'; 根据库名获取所有表名称和表说明 S ...
- mysql 查询数据库表信息,字段信息
#======================================================================= #查询表信息 select table_name, t ...
- MySql 、Oracle 获取表结构和字段信息
1.MySql获取表结构信息 SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA ...
- SqlServer 获取 当前地址下 所有数据库字段信息 / 快速 批量插入数据库(TVPs)
SQL执行 --拼装 当前地址下 所有数据库字段信息 BEGIN DECLARE @dataBaseName NVARCHAR(MAX)--数据库名称 DECLARE @tableName NVARC ...
- 【Java/JDBC】借助ResultSetMetaData,从数据库表中抽取字段信息存成Excel文件
本例工程下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-3.rar 工作中曾有个为42张表建立测 ...
随机推荐
- windows下搭建h5游戏小小火影教程【附安装包】
小小三国是一款很好玩的H5游戏.只需要用一台64位的windows电脑或服务器,你就可以和朋友们一起联机玩这个游戏了.本文将会教你如何搭建这个游戏,步骤如下. 1.下载好后你会看到该压缩包 2.解压到 ...
- 寒假acm训练第三周
这个题就是简单的数学思维 如果这个数组里全部都是10的倍数那直接计数达到n就直接出0 如果有其它不是10的倍数那找出最小的直接减去就可以了 下面就是代码 #include<iostream> ...
- poi 5.2 导出
如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正. 1:maven 依赖,现在好多都是用的poi 3.6 和 poi3.9 的jar,项目升级了,现在得用5.x的了,所以就用5.x的给大家简单的演 ...
- mysql随机返回一条数据
select * from biz_question ORDER BY RAND(id) LIMIT 1; SELECT * FROM biz_question AS t1 JOIN (SELECT ...
- TreeView控件的基本用法
https://www.cnblogs.com/net064/p/5534697.html https://www.bbsmax.com/A/RnJW6VGvzq/
- 通过expected_conditions判断网页元素是否存在
expected_conditions模块: 是Selenium的一个子模块,selenium.webdriver.support.expected_conditions 可以对网页上元素是否存在进行 ...
- org.aspectj.lang不存在,引入失败。
问题:添加了依赖,或引入了jar包但是写aspect类时无法引入 解决办法:
- css悬浮动画
1.Grow-Shadow /* Grow-Shadow */ .hvr-grow-shadow { display: inline-block; vertical-align: middle; -w ...
- dll帮助类
项目中有很多时候用到外部dll,调用的时候如果用静态调用,程序exe目录下有很多dll,看起来很乱,不利于后续维护:动态调用可以把dll放在想放的文件夹内,但是如果一个dll要用到的函数很多,动态调用 ...
- Gitbook部署
title: Gitbook部署 # 标题 date: 2020-06-14 08:00:00 借助Gitbook,写自己的第一本电子书 Gitbook部署 一.电脑环境 Git 环境,我的电脑上已经 ...