/// <summary> /// 转为csv /// </summary> /// <param name="sSavePath"></param> public void ToCsv(string sSavePath) { CsvPacket csv = new CsvPacket(); csv.AddField("head"); csv.AddField("level1"); csv.AddField("level2"); csv.AddField("level3"); int row = 1; int cloums = 1; foreach (var item in this.Tree) { csv.SetItemString(row, "head", item.Name); TranslateTreeChild(item, ref row, csv, cloums); } //Directory.GetCurrentDirectory() + "\\Menu.csv" csv.WriteToFile(sSavePath); }
/// <summary> /// 转换子树 /// </summary> /// <param name="menu"></param> /// <param name="row"></param> /// <param name="csv"></param> /// <param name="cloums"></param> private static void TranslateTreeChild(Tree menu, ref int row, CsvPacket csv, int cloums) { if (menu.Childs == null || menu.Childs.Count == 0) { return; } for (int i = 0; i < menu.Childs.Count; i++) { csv.SetItemString(row, "level" + cloums, menu.Childs[i].Name); int nextRow = row; TranslateTreeChild(menu.Childs[i], ref nextRow, csv, cloums + 1); if (nextRow > row) { row = nextRow; } if (i != (menu.Childs.Count - 1)) { row++; } } }