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)

最新文章

  1. clean code meaningful names
  2. SVO实时全局光照优化(里程碑MK2):Sparse Voxel Octree based Global Illumination (SVO GI)
  3. apache开源项目--kafka
  4. C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化
  5. C语言之固定格式输出当前时间
  6. java me 旋转的X案例
  7. 关于locals()、globals()以及作用域的一些感悟
  8. 分布式集群Session共享 简单多tomcat8+redis的session共享实现
  9. windows下安装mysql驱动mysql-python
  10. 老男孩Python全栈学习 S9 日常作业 004
  11. struts2自定义转换器
  12. MySQL-5.7.19 在阿里云 CentOS-7.0 上的安装
  13. gitlab重置root的密码
  14. 1月4日笔记 vi编辑器
  15. abap 基本知识
  16. iOS 常用小功能 总结
  17. vue+node+mongoDB前后端分离个人博客(入门向)
  18. LOJ#2070. 「SDOI2016」平凡的骰子(计算几何)
  19. 页面请求速度慢,TTFB时间长的问题分析
  20. [C/C++] 快速幂讲解

热门文章

  1. .Net Core Elasticsearch 时间查询问题
  2. linux中用户和用户组的概念
  3. vue 清空element表单数据
  4. python 读取xls文件
  5. ASP.NET Core MVC中调用Json()时默认使用Newtonsoft.Json返回数据
  6. Qt构造函数和析构函数报错undefinedreferenceto`vtable for 。。。。&#39;
  7. 硬件IIC主从机中断代码注释解析
  8. dropbear 2019.78 Installing to target......Running build_buildroot failed!
  9. Python爬取三国演义章节标题和内容(bs4爬取,解决中文乱码)
  10. vue 数组对象深拷贝 并根据某项属性排序