jquery可以将datatable的数据转化为一个json数据(这个过程我们一般会用$each),提交给到ashx(一般处理程序),然后再通过net去解析json数据,再将数据导出到excel里面。
“>
下面是我给出的两个转换方法,基本能解决遇到的问题
/// <summary>/// 将DataTable转换为List
/// </summary>
/// <typeparam name="T">转换的类型</typeparam>
/// <param name="dataSource">数据源</param>
/// <returns>转换得到的List</returns>
public static List<T> ToList<T>(this DataTable dataSource) where T : class,new()
{
Type type = typeof(T);
PropertyInfo[] propertyInfos = typeGetProperties(BindingFlagsPublic | BindingFlagsInstance);
//返回集合
List<T> list = new List<T>();
foreach (DataRow row in dataSourceRows)
{
T t = new T();
//T t = (T)ActivatorCreateInstance(type);
//循环属性
foreach (PropertyInfo proInfo in propertyInfos)
{
//通过属性名,得到DataRow数据
if (row[proInfoName] != null)
{
//属性赋值
proInfoSetValue(t, row[proInfoName]);
}
}
listAdd(t);
}
return list;
}
/// <summary>
/// 将DataTable转换为List(js解析时使用)
/// </summary>
/// <param name="dataSource">数据源</param>
/// <returns></returns>
public static List<Dictionary<string, object>> ToList(this DataTable dataSource)
{
//集合
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
foreach (DataRow row in dataSourceRows)
{
//实体类
Dictionary<string, object> instance = new Dictionary<string, object>();
foreach (DataColumn col in dataSourceColumns)
{
//属性
instanceAdd(colColumnName, row[colColumnName]);
}
listAdd(instance);
}
return list;
}
具体用哪个方法,你自看方法的定义。
由于你要自己添加一个flag,所以,当你的调用方法得到json之后,你自己还需要拼接你自己的flag
string ss = " [[\"a\",\"b\",\"c\"],[\"x\",\"y\",\"z\"]] ";
string[] arrary = ssSplit(new char[] { ',', '"', '[',']' });
var values = from x in arrary where xTrim() != "" select x;
string[] result = valuesToArray();
//下面的可能就一部到位了
string ss = "[[\"a\",\"b\",\"c\"],[\"x\",\"y\",\"z\"]]";
string[] arrary = ssSplit(new char[] { ',', '"', '[', ']' },StringSplitOptionsRemoveEmptyEntries);
以上就是关于jquery 怎么将datatable 返回到后台并导出excel全部的内容,包括:jquery 怎么将datatable 返回到后台并导出excel、asp.net中json序列化问题,一个标识加一个datatable、C# Json如何转为二维数组或者datatable等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)