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#遍历一个对象的字段信息的更多相关文章

  1. 有遍历struct中字段信息的函数或方法

    例:struct a{int a;char b[10];double c;}; 在程序中只知道一个结构 a 的指针, 有没有函数能通过结构的名字 和 指向结构的指针 随次得到 结构中的变量类型 和 变 ...

  2. 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

    1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...

  3. mysql导出数据库表名与字段信息

    一.导出数据库表格信息 #mysql导出库的表格信息 SELECT A.TABLE_SCHEMA, A.TABLE_NAME, A.TABLE_ROWS, A.CREATE_TIME, A.TABLE ...

  4. MySQL获取Schema表名和字段信息

    MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,U ...

  5. sqlite查看所有表名、判断表是否存在,字段名及字段信息

    sqlite查看所有表名.判断表是否存在,字段名及字段信息   sqlite查看所有表名及字段名查询table,type 段是'table',name段是table的名字, select name f ...

  6. 查询mysql所有表数据、字段信息

    根据库名获取所有表的信息 SELECT * FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'erp'; 根据库名获取所有表名称和表说明 S ...

  7. mysql 查询数据库表信息,字段信息

    #======================================================================= #查询表信息 select table_name, t ...

  8. MySql 、Oracle 获取表结构和字段信息

    1.MySql获取表结构信息 SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA ...

  9. SqlServer 获取 当前地址下 所有数据库字段信息 / 快速 批量插入数据库(TVPs)

    SQL执行 --拼装 当前地址下 所有数据库字段信息 BEGIN DECLARE @dataBaseName NVARCHAR(MAX)--数据库名称 DECLARE @tableName NVARC ...

  10. 【Java/JDBC】借助ResultSetMetaData,从数据库表中抽取字段信息存成Excel文件

    本例工程下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-3.rar 工作中曾有个为42张表建立测 ...

随机推荐

  1. Word13 《经费联审结算单》模板office真题

    1.根据题目一的要求,打开素材文件,点击[文件]-[另存为],选择[当前文件夹],命名为Word. 2.根据题目二的要求,在[布局]里点击[页面设置]的右下角,打开页面设置窗口,选择[纸张],根据题目 ...

  2. springboot自带的MD5加密

    //md5DigestAsHex返回的是string类型 DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets ...

  3. VUE学习-:class & :style

    :class & :style :class 键值对 <div id="app" v-bind:class="{ 'active': isActive }& ...

  4. RestTemplate 远程服务调用

    * 使用 Eureka 和 Nacos  为注册中心时也能使用这种方式调用 一.远程调用类 bean 配置注入 和 配置负载均衡 注意,必须在可配置类中注入 bean,例如 SpringBoot 启动 ...

  5. python读取图片相关属性

    背景:工作中用到一些基础的图片处理的任务,比如获取图片宽高.获取图片的旋转角度等等图片属性,都是比较零散的,这里简单做个记录备忘 这里用到的库exifread,安装 pip isntall exifr ...

  6. el-table 处理表格数据中存在属性值为数组的情况

    当返回的数据类型如下: tableData: [ { name: '张三', occupation: '经理', experiences: [ { id: '123456', project: '香蕉 ...

  7. tool/js - ChineseToPinyin 汉语转拼音

    tool/js - ChineseToPinyin 汉语转拼音 Convert_Pinyin.js js如何简单实现汉字转成拼音的功能 pinyin-pro 官网 npm npm 安装 npm ins ...

  8. springboot集成xxl-job问题

    Client-error:unknown code for readObject at 0x3c (<) 原因之一是classNotFoundRxception :com.caucho.hess ...

  9. docker部署flask+uwsgi+nginx+postgresql,解耦拆分到多个容器,实现多容器互访

    本人承诺,本博客内容,亲测有效. dockerfile文件, FROM centos:7 RUN mkdir /opt/flask_app COPY ./show_data_from_jira /op ...

  10. org.aspectj.lang不存在,引入失败。

    问题:添加了依赖,或引入了jar包但是写aspect类时无法引入 解决办法: