/// <summary>
/// 遍历类所有字段
/// </summary>
/// <param name="designer">aspose.cell中WorkbookDesigner对象</param>
/// <param name="jObject">Newtonsoft.Json 中 JObject.FromObject(entity)</param>
/// <param name="className">当前jObject名称,默认 t</param>
public static void ForeachEntityProperties(WorkbookDesigner designer, JObject jObject, string className = "t")
{

foreach (var item in jObject)
{
string propertyName = item.Key;
var propertyValue = item.Value;
if (item.Value.Type == JTokenType.String)
{
designer.SetDataSource(className + "." + propertyName, propertyValue);
}
else if (item.Value.Type == JTokenType.Array)
{
var arr = propertyValue as JArray;
designer.SetDataSource(ToDataTable(arr, propertyName));
}
else if (item.Value.Type == JTokenType.Object)
{
ForeachEntityProperties(designer, propertyValue as JObject, propertyName);
}

}

}
/// <summary>
/// 将JArray转换为DataTable
/// </summary>
/// <param name="jArray"></param>
/// <param name="tableName">DataTable表名称 默认 dt</param>
/// <returns></returns>
public static DataTable ToDataTable(JArray jArray, string tableName = "dt")

{
DataTable result = new DataTable(tableName);
if (jArray != null && jArray.Count > 0)
{
var jObject = jArray[0] as JObject;
if (jObject != null)
foreach (var item in jObject)
{
result.Columns.Add(item.Key, typeof(string));
}
foreach (var t in jArray)
{
ArrayList tempList = new ArrayList();
var items = t as JObject;
if (items != null)
foreach (var item in items)
{
object obj = item.Value;
tempList.Add(obj);
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;

}

通过遍历类向Aspose.cell模板中插入数据的更多相关文章

  1. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...

  2. POI往word模板中写入数据

    转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  3. EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的

    我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...

  4. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

  5. html-webpack-plugin在html中插入数据

    html-webpack-plugin在html中插入数据 <!DOCTYPE html> <html> <head> <meta charset=" ...

  6. 使用C#向ACCESS中插入数据

    使用C#向ACCESS中插入数据   1.创建并打开一个OleDbConnection对象 string strConn = " Provider = Microsoft.Jet.OLEDB ...

  7. 触发器修改后保存之前的数据 表中插入数据时ID自动增长

    create or replace trigger t before update on test5 for each rowbegin insert into test55 values (:old ...

  8. Hive通过查询语句向表中插入数据注意事项

    最近在学习使用Hive(版本0.13.1)的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug.总而言之,这些都需要使用Hive的开发人员额 ...

  9. 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据

    向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...

随机推荐

  1. javascript总结36:DOM-点击按钮切换图片案例

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  2. OpenSSH免密码登录SSH2

    SSH2免密码登录OpenSSHhttp://blog.csdn.net/aquester/article/details/23836299 两个SSH2间免密码登录http://blog.csdn. ...

  3. (转)走进AngularJs(六) 服务

    原文地址:http://www.cnblogs.com/lvdabao/p/3464015.html 今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录 ...

  4. 9.29学习的js基础

    js基础 1.三种js引入方式    a).<input type="button" value="点击事件" onClick="documen ...

  5. 关于iReport中纸张的大小 换算

    在iReprot里中进行报表设计时 第一步先确定纸张的大小   如A4纸  直接选就行了  A2 A3一样的,但还会在这种情况这种纸没有选择的怎么办? 比如  那种代小孔的纸     279*241m ...

  6. ARM启动代码中_main 与用户主程序main()的区别

    1.1  问题描述     __main函数的作用是什么呀?1.2  问题剖析     __main函数是C/C++运行时库的一个函数,嵌入式系统在进入应用主程序之前必须有一个初始化的过程,使用__m ...

  7. 大数据hadoop分布式系统

    1>hadoop简介: Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行      分布式计算 ...

  8. 谷歌浏览器插件开发入门-官方版Helloworld详解

    目录: 需求 原理 实现步骤: 一个空的插件 一个可以设置一种背景色的插件(可以设置百度首页的背景色为绿色) 一个可以设置多种背景色的插件 需求: 插件可以改变特定网址的背景颜色. 原理: 将各种ht ...

  9. Maven项目常见错误

    一.Cannot change version of project facet Dynamic Web Module to 3.0. 和 One or more constraints have n ...

  10. Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析

    Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析 一:Tolookup 1. 从方法的注解上可以看到,ToLookup也是一个k,v的形式,那么问题来了,它 ...