/// <summary>
        /// 根据类型导出数据
        /// 1.描述
        /// 2.类型  I->int F->float S->String B->bool
        /// 3.字段
        /// 4.数据  一级分隔符| 二级分隔符 _
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ExportJsonOfType(object sender, RibbonControlEventArgs e)
        {
            typeRang.Clear();
            keyRang.Clear();

            Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet;
            string[]        fileName        = activeWorksheet.Application.Caption.Split('.');

            List <string> Keys = new List <string>();

            List <string> Des = new List <string>();

            Des = GetLine(activeWorksheet, 1);

            keyRang = GetLine(activeWorksheet, 3);

            typeRang = GetLine(activeWorksheet, 2);



            if (typeRang.Count != keyRang.Count || typeRang.Count == 0 || keyRang.Count == 0)
            {
                MessageBox.Show("字段和类型个数不匹配");
                return;
            }
            Dictionary <string, string> _FieldsDic = new Dictionary <string, string>();

            for (int i = 0; i < keyRang.Count; ++i)
            {
                string cell = keyRang[i];
                _FieldsDic.Add(cell, typeRang[i]);
                Keys.Add(cell);
            }

            if (_FieldsDic.Count == 0)
            {
                return;
            }

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("[");
            int index = 3;

            while (true)
            {
                List <string> dataRang = GetLine(activeWorksheet, ++index, false);
                if (dataRang.Count == 0)
                {
                    break;
                }

                stringBuilder.Append("{");

                for (int i = 0; i < Keys.Count; ++i)
                {
                    stringBuilder.Append("\"" + ((string)keyRang[i]).Trim() + "\":");
                    string fieldType = ((string)typeRang[i]).Trim();
                    if (i < dataRang.Count)
                    {
                        StringBuilder v1 = new StringBuilder(dataRang[i]);
                        //string v = dataRang[i].Text;
                        string v = v1.ToString().TrimEnd();

                        switch (fieldType)
                        {
                        case "I":
                        {
                            stringBuilder.Append(Convert.ToInt64(v));
                        }
                        break;

                        case "F":
                        {
                            stringBuilder.AppendFormat("{0:F}", Convert.ToDouble(v));
                        }
                        break;

                        case "S":
                        {
                            v = v.Replace('\r', ' ');
                            v = v.Replace('\n', ' ');
                            stringBuilder.Append("\"" + v + "\"");
                        }
                        break;

                        case "B":
                        {
                            v = v.Trim();
                            v = v.ToLower();
                            if (v.Equals("0") || v.Equals(bool.FalseString.ToLower()))
                            {
                                stringBuilder.Append(bool.FalseString.ToLower());
                            }
                            else if (v.Equals("1") || v.Equals(bool.TrueString.ToLower()))
                            {
                                stringBuilder.Append(bool.TrueString.ToLower());
                            }
                            else
                            {
                                MessageBox.Show("错误的类型: [ " + fieldType + " ]");
                            }
                        }
                        break;

                        default:
                        {
                            MessageBox.Show("错误的类型: [ " + fieldType + " ]");
                        }
                        break;
                        }
                    }
                    else
                    {
                        stringBuilder.Append("");
                    }
                    if (i != Keys.Count - 1)
                    {
                        stringBuilder.Append(",");
                    }
                }
                stringBuilder.Append("},");
            }
            stringBuilder.Remove(stringBuilder.Length - 1, 1);
            stringBuilder.Append("]");
            string json = stringBuilder.ToString();

            this.Save(json);

            UnityCS cs = new UnityCS();

            cs.Export(fileName[0], typeRang, keyRang, Des);
        }
        /// <summary>
        /// 根据类型导出数据
        /// 1.描述
        /// 2.类型  I->int F->float S->String B->bool
        /// 3.字段
        /// 4.数据  一级分隔符| 二级分隔符 _
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ExportJsonOfType(object sender, RibbonControlEventArgs e)
        {
            typeRang.Clear();
            keyRang.Clear();

            Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet;
            string[] fileName = activeWorksheet.Application.Caption.Split('.');

            List<string> Keys = new List<string>();

            List<string> Des = new List<string>();
            Des = GetLine(activeWorksheet, 1);

            keyRang = GetLine(activeWorksheet, 3);

            typeRang = GetLine(activeWorksheet, 2);

            if (typeRang.Count != keyRang.Count || typeRang.Count == 0 || keyRang.Count == 0)
            {
                MessageBox.Show("字段和类型个数不匹配");
                return;
            }
            Dictionary<string, string> _FieldsDic = new Dictionary<string, string>();
            for (int i = 0; i < keyRang.Count; ++i)
            {
                string cell = keyRang[i];
                _FieldsDic.Add(cell, typeRang[i]);
                Keys.Add(cell);
            }

            if (_FieldsDic.Count == 0)
            {
                return;
            }

            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append("[");
            int index = 3;
            while (true)
            {
                List<string> dataRang = GetLine(activeWorksheet, ++index,false);
                if (dataRang.Count == 0)
                {
                    break;
                }

                stringBuilder.Append("{");

                for (int i = 0; i < Keys.Count; ++i)
                {
                    stringBuilder.Append("\"" + ((string)keyRang[i]).Trim() + "\":");
                    string fieldType = ((string)typeRang[i]).Trim();
                    if (i < dataRang.Count)
                    {
                        StringBuilder v1 = new StringBuilder(dataRang[i]);
                        //string v = dataRang[i].Text;
                        string v = v1.ToString().TrimEnd();

                        switch (fieldType)
                        {
                            case "I":
                                {
                                    stringBuilder.Append(Convert.ToInt64(v));
                                }
                                break;
                            case "F":
                                {
                                    stringBuilder.AppendFormat("{0:F}",Convert.ToDouble(v));
                                }
                                break;
                            case "S":
                                {
                                    v = v.Replace('\r', ' ');
                                    v = v.Replace('\n', ' ');
                                    stringBuilder.Append("\"" + v + "\"");
                                }
                                break;
                            case "B":
                                {
                                    v = v.Trim();
                                    v = v.ToLower();
                                    if (v.Equals("0") || v.Equals(bool.FalseString.ToLower()))
                                    {
                                        stringBuilder.Append(bool.FalseString.ToLower());
                                    }
                                    else if (v.Equals("1") || v.Equals(bool.TrueString.ToLower()))
                                    {
                                        stringBuilder.Append(bool.TrueString.ToLower());
                                    }
                                    else
                                    {
                                        MessageBox.Show("错误的类型: [ " + fieldType + " ]");
                                    }
                                }
                                break;
                            default:
                                {
                                    MessageBox.Show("错误的类型: [ " + fieldType + " ]");
                                }
                                break;
                        }
                    }
                    else
                    {
                        stringBuilder.Append("");
                    }
                    if (i != Keys.Count - 1)
                    {
                        stringBuilder.Append(",");
                    }
                }
                stringBuilder.Append("},");
            }
            stringBuilder.Remove(stringBuilder.Length - 1, 1);
            stringBuilder.Append("]");
            string json = stringBuilder.ToString();
            this.Save(json);

            UnityCS cs = new UnityCS();
            cs.Export(fileName[0], typeRang, keyRang,Des);
        }