有JSON对象保存了要用于导出到Excel表格文件的内容,如下:
对应的文本格式为:
[["编号","图层名称","预警分析结果数量"],["1","给水管线","45"]]
可解析为一个数组,第一组为列名,第二组起为各行的值。
填充到DataTable的方法如下:
System.Array allValues = JArray.Parse(strListData).ToArray();
System.Array arrHead = JArray.Parse(allValues.GetValue(0).ToString()).ToArray();
int nColumnCount = arrHead.Length;
if(1>nColumnCount)
{
return "";
}
DataTable dt = new DataTable();
foreach (var headCaption in arrHead)
{
dt.Columns.Add(headCaption.ToString(), typeof(string));
}
int nRowIndex = 1;
int nRowSize = allValues.Length;
for (; nRowIndex < nRowSize; nRowIndex++)
{
System.Array arrValue = JArray.Parse(allValues.GetValue(nRowIndex).ToString()).ToArray();
if (arrValue.Length > 0 && 0 == (arrHead.Length - arrValue.Length))
{
DataRow dtRow = dt.NewRow();
int nColIndex=0;
foreach(var colName in arrHead)
{
string strColName = colName.ToString();
dtRow[strColName] = arrValue.GetValue(nColIndex++).ToString();
}
dt.Rows.Add(dtRow);
}
}
dt.AcceptChanges();
填充完成后预览如下: