zoukankan      html  css  js  c++  java
  • C# 实现Excel读取接口写入数据

    [Route("adm/getInfo")]
    [HttpGet]
    public string GetInfo()
    {
                var types = typeof(GCP.Server.WebAPI.Controllers.HomeController).Assembly.GetTypes().Where(m => m.Name.EndsWith("Controller"));
                System.Text.StringBuilder sb = new System.Text.StringBuilder(100);
                sb.Append("接口").Append(",").Append("类型").Append(",").Append("注释").AppendLine();
    
                using (System.IO.StreamReader sr = new System.IO.StreamReader(@"F:GCPSourceCodeGCPGCP.WebAPIApp_DataGCP.WebAPI.XML"))
                {
                    System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
                    xml.Load(@"F:GCPSourceCodeGCPGCP.WebAPIApp_DataGCP.WebAPI.XML");
                    var members = xml.LastChild.LastChild.ChildNodes;
                    //var members = xml.LastChild.ChildNodes;
                    foreach (var t in types)
                    {
                        var routePrefix = t.GetCustomAttributes(false).FirstOrDefault(m => m.ToString().Contains("RoutePrefix")) as RoutePrefixAttribute;
                        if (routePrefix == null)
                        {
                            continue;
                        }
                        string prefix = routePrefix.Prefix;
    
                        var ms = t.GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
                            .Where(m => m.GetCustomAttributes(false).Any(n => n.GetType() == typeof(RequestControlAttribute)));
                        foreach (var m in ms)
                        {
                            var requestCtrl = m.GetCustomAttributes(typeof(RequestControlAttribute), false)[0] as RequestControlAttribute;
                            var routeAttr = m.GetCustomAttributes(typeof(RouteAttribute), false)[0] as RouteAttribute;
                            Row r = new Row
                            {
                                Url = prefix + "/" + routeAttr.Template,
                                Type = requestCtrl.requestorType.ToString(),
                                Content = GetContent(members, m)
                            };
                            sb.Append(r.Url).Append(",").Append(r.Type).Append(",").Append(r.Content).AppendLine();
                        }
                    }
                }
    
                System.IO.File.WriteAllText("e:/info.csv", sb.ToString(), System.Text.Encoding.UTF8);
                return "OK";
     }
    
    private string GetContent(XmlNodeList members, MethodInfo m)
    {
                for (int i = 0; i < members.Count; i++)
                {
                    var mem = members[i];
                    if (mem.Attributes["name"].Value.Contains(m.DeclaringType.ToString() + "." + m.Name))
                    {
                        return mem.FirstChild.InnerText.Replace("
    ", "").Replace(",", "_").Trim();
                    }
                }
                return "";
    }
    
    class Row
    {
                public string Url { get; set; }
                public string Type { get; set; }
                public string Content { get; set; }
    }
    
    
  • 相关阅读:
    2018/01/01Java基础学习——如何通过dos系统的javadoc命令生成API文档
    Go语言的big包实现大整数运算
    HDU5100 Chessboard【组合数学】
    HDU5143 NPY and arithmetic progression【暴力】
    UVALive5402 UVA579 Clock Hands【水题】
    UVA11799 Horror Dash【求极值+水题】
    HDU1017 ZOJ1152 A Mathematical Curiosity【暴力】
    UVALive2536 POJ1248 HDU1015 ZOJ1403 Safecracker【密码+暴力】
    POJ1284 Primitive Roots【原根】
    UVA11340 Newspaper【输入流+map】
  • 原文地址:https://www.cnblogs.com/ButterflyEffect/p/6783087.html
Copyright © 2011-2022 走看看