/// <summary> /// 写入AllInOne文件 /// </summary> /// <param name="stream"></param> /// <param name="headerMarker"></param> /// <param name="spliter"></param> /// <param name="encoding"></param> public void WriteAsOneFile(Stream stream, string headerMarker = "#", string spliter = "\t", Encoding encoding = null) { if (encoding == null) { encoding = Encoding.Default; } using (StreamWriter writer = new System.IO.StreamWriter(stream, encoding)) { var length = GetMaxTableRowCount(); for (int i = -1; i < length; i++) { foreach (var table in this) { if (table.RowCount == 0) { continue; } if (table.RowCount > i) { if (i == -1) { writer.WriteLine(headerMarker + table.Name + spliter + table.ToSplitedTitleString(spliter)); continue; } var row = table.BufferedValues[i]; writer.WriteLine(table.Name + spliter + ObjectTableWriter.ToSplitedValueString(row, "", spliter, "G", table.ParamNames)); } } } writer.Flush(); } }