C# 读取Excel转化为Json

json转XML可以在
https://1024tools.com/xmljson
找到

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.Encodings.Web;
using Tool;
using System.IO;
using System.Xml;
//using Newtonsoft.Json;
using System.Text.Json;
using OfficeOpenXml;

namespace JsonPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            //Student stu = new Student() {Id=10001,Name="张三",Phonenumber="1505050505" };

            //var jsonstu = JsonSerializer.Serialize(stu, typeof(Student),
            //new JsonSerializerOptions
            //{
            //    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            //});

            //System.Text.Json.Utf8JsonReader
            //Console.WriteLine(JsonTool.ToJson(stu));
            //Console.ReadKey();
            //string FilePath = "D:\\jsontxt.json";
            string FilePath2 = @"D:\DB\ConfigFile\Variable_Modbus.json";
            FileStream fs = new FileStream(FilePath2, FileMode.Open);

            //Student aa = JsonSerializer.Deserialize<Student>(fs, new JsonSerializerOptions
            //{
            //    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            //});
            //Console.WriteLine("{0},{1},{2}", aa.Id, aa.Name, aa.Phonenumber);
            //Console.ReadKey();

            //JsonSerializer.Serialize<Variable_Modbus>(fs, jsonstu,
            //   new JsonSerializerOptions
            //   {
            //       Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            //   });

            JsonSerializerOptions jso = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            };

            JsonDocument doc = JsonDocument.Parse(fs);
            List<Variable_Modbus> VarModbusList = new List<Variable_Modbus>();

            //var ip = doc.RootElement.GetProperty("Root").GetProperty("Variable")[0].GetProperty("VarName");

            //foreach (var item in doc.RootElement.GetProperty("Root").GetProperty("Variable").EnumerateArray())
            //{
            //    Variable_Modbus objVar = new Variable_Modbus();

            //    objVar.VarName = item.GetProperty("VarName").GetString();
            //    objVar.Address = item.GetProperty("Address").GetString();
            //    objVar.DataType = item.GetProperty("DataType").GetString();
            //    objVar.StoreArea = item.GetProperty("StoreArea").GetString();
            //    objVar.IsFiling = item.GetProperty("IsFiling").GetString();
            //    objVar.IsAlarm = item.GetProperty("IsAlarm").GetString();
            //    objVar.IsReport = item.GetProperty("IsReport").GetString();
            //    objVar.Note = item.GetProperty("Note").GetString();
            //    objVar.AbsoluteAddress = item.GetProperty("AbsoluteAddress").GetString();
            //    VarModbusList.Add(objVar);
            //}


            //var age = doc.RootElement.GetProperty("Variable");
            //for (int i = 0; i < VarModbusList.Count; i++)
            //{
            //    Console.WriteLine(VarModbusList[i].Note);
            //}
            //Console.ReadKey();
            string FilePath3 = @"D:\DB\ConfigFile\shenhua.xlsx";

            //ExcelTool exceltool = new ExcelTool();

            List<string> listVarName = new List<string>();
            List<string> listNote = new List<string>();
            //List<ExcelTest> listTest = new List<ExcelTest>();

            using (var packege = new ExcelPackage(FilePath3))
            {
                int columnIndexVarName = 3; //第N列
                int columnIndexNote = 4;
                int rowStartIndex = 2;
                int rowEndIndex = 60;
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

                ExcelWorksheet sheet = packege.Workbook.Worksheets[0];
                //var cell = sheet.Cells[50, columnIndex];
                for (int i = rowStartIndex; i < rowEndIndex; i++)
                {
                    var cell = sheet.Cells[i, columnIndexVarName];

                    listVarName.Add(cell.Value.ToString());
                }

                for (int i = rowStartIndex; i < rowEndIndex; i++)
                {
                    var cell = sheet.Cells[i, columnIndexNote];
                    listNote.Add(cell.Value.ToString());
                }
            }

            foreach (var item in doc.RootElement.GetProperty("Root").GetProperty("Variable").EnumerateArray())
            {
                Variable_Modbus objVar = new Variable_Modbus();

                objVar.VarName = item.GetProperty("VarName").GetString();
                objVar.Address = item.GetProperty("Address").GetString();
                objVar.DataType = item.GetProperty("DataType").GetString();
                objVar.StoreArea = item.GetProperty("StoreArea").GetString();
                objVar.IsFiling = item.GetProperty("IsFiling").GetString();
                objVar.IsAlarm = item.GetProperty("IsAlarm").GetString();
                objVar.IsReport = item.GetProperty("IsReport").GetString();
                objVar.Note = item.GetProperty("Note").GetString();
                objVar.AbsoluteAddress = item.GetProperty("AbsoluteAddress").GetString();
                VarModbusList.Add(objVar);
            }

            for (int i = 0; i < VarModbusList.Count; i++)
            {
                VarModbusList[i].VarName = listVarName[i];
                VarModbusList[i].Note = listNote[i];
            }
            string fp = @"D:\DB\ConfigFile\test1.json";
            File.WriteAllText(fp, Newtonsoft.Json.JsonConvert.SerializeObject(VarModbusList));
            Console.ReadKey();


            /// 转换XML为json
            //XmlDocument doc = new XmlDocument();

            //FileStream fs = new FileStream(FilePath2, FileMode.Open);
            //doc.Load(fs);
            //string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);
            //Console.WriteLine("XML -> JSON: {0}", json);
            //Console.ReadKey();

        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘诺西亚的火山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值