我想将.json文件转换为excel.我无法使用c#语言在任何地方找到这些问题的解决方案.任何人都可以帮助我解决这些问题以及确切的解决方案.
这是另一个部分解决方案,只要json采用表格格式,就不需要制作json定义.
DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)
从这里,您可以使用互联网上提供的众多数据表 - > excel解决方案中的任何一种.
许多发布在这里: 如何将DataTable导出到Excel
小智 2
这可以在EPPlus的帮助下完成,检查下面的代码以获得完整的答案。
创建 Json 数据并将其写入 Excel
using (StreamReader r = new StreamReader(file))
{
string json = r.ReadToEnd();
var obj = JsonConvert.DeserializeObject<JObject>(json);
List<JsonData> dataList = GetDataList(obj);
var fileName = file.Split('\\').Last().Split('.')[0].Trim().ToString();
using (ExcelPackage excel = new ExcelPackage())
{
excel.Workbook.Worksheets.Add(fileName);
var headerRow = new List<string[]>()
{
new string[] { "Key", "Value"}
};
string headerRange = "A1:" + Char.ConvertFromUtf32(headerRow[0].Length + 64) + "1";
var worksheet = excel.Workbook.Worksheets[fileName];
worksheet.Cells[headerRange].LoadFromArrays(headerRow);
worksheet.Cells[2, 1].LoadFromCollection(dataList);
FileInfo excelFile = new FileInfo($"D:\\JsonFilesToExcel\\{folder}\\{fileName}.xlsx");
excel.SaveAs(excelFile);
}
}
Run Code Online (Sandbox Code Playgroud)通过读取 Json 键值对创建 C# 对象
public static List<JsonData> GetDataList(JObject obj)
{
var listResult = new List<JsonData>();
foreach (JProperty item in (JToken)obj)
{
listResult.Add(new JsonData { Key = item.Name, Value = item.Value.ToString() });
}
return listResult;
}
Run Code Online (Sandbox Code Playgroud)