【发布时间】:2018-03-08 12:42:59
【问题描述】:
我正在使用此代码将 Excel 文件转换为 JSON 格式。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var pathToExcel = @"D:\works\sample.xlsx";
var sheetName = "sa";
var connectionString = String.Format(@"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={0};
Extended Properties=""Excel 12.0 Xml;HDR=YES""
", pathToExcel);
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = String.Format(
@"SELECT * FROM [{0}$]",
sheetName
);
using (var rdr = cmd.ExecuteReader())
{
var query =
(from DbDataRecord row in rdr
select row).Select(x =>
{
Dictionary<string, object> item = new
Dictionary<string, object>();
for(int i=0;i<20;i++)
{
item.Add(rdr.GetName(i), x[i]);
}
return item;
});
//Generates JSON from the LINQ query
var json = JsonConvert.SerializeObject(query);
var result = json;
Console.WriteLine(result);
//return json;
}
}
}
}
}
要求是我需要在 JSON 中创建子序列化对象。例如,如果一个单元格有一个值: "name": "abc,def",输出必须是:
"name":
{
"name1": "abc",
"name2": "def"
}
如何修改我的代码来实现这一点?
【问题讨论】:
-
请将代码发布为文本而不是图像。
-
请在此处以文本格式提供您的代码。
-
提供处理“name”的代码:{“name1”:“abc”,“name2”:“def”}这部分
-
@MihirDave 这个链接能帮上忙吗?
-
不,在这里发布代码。 @CVKASHYAP
标签: c# excel dictionary json.net