static int Columns(string file, string name) { if (!File.Exists(file)) { Error("File not found: " + file); return(1); } using var csvz = CsvZipPackage.Open(file); var entry = csvz.FindEntry(name); var cols = entry.GetColumnSchema(); var table = new ConsoleTable("Column", "Ordinal", "Type", "Nullable"); table.Configure(o => o.NumberAlignment = Alignment.Right); foreach (var col in cols.OrderBy(c => c.ColumnOrdinal)) { table.AddRow(col.ColumnName, col.ColumnOrdinal, col.DataTypeName, col.AllowDBNull); } table.Write(Format.Minimal); return(0); }
static int Add(string file, string name, bool overwrite) { if (!File.Exists(file)) { Error("File not found: " + file); return(1); } if (!File.Exists(name)) { Error("File not found: " + file); return(2); } using var csvz = CsvZipPackage.Open(file); var entry = csvz.FindEntry(name); if (entry != null) { if (overwrite) { Console.WriteLine("Entry already exists, overwriting."); entry.Delete(); } else { Error("File " + file + " alrady contain a table named " + name + ", specify overwrite to replace."); return(3); } } WriteCsv(csvz, name); Console.WriteLine($"Added {name} to {file}."); return(0); }
static int Remove(string file, string name) { if (!File.Exists(file)) { Error("File not found: " + file); return(1); } using var csvz = CsvZipPackage.Open(file); var entry = csvz.FindEntry(name); if (entry == null) { Error("File " + file + " doesn't contain a table named " + name); return(2); } entry.Delete(); Console.WriteLine($"Removed {name} from {file}."); return(0); }
static int Tables(string file) { if (!File.Exists(file)) { Error("File not found: " + file); return(1); } using var csvz = CsvZipPackage.Open(file); var table = new ConsoleTable("Table", "Size", "Rows", "Columns"); table.Configure(o => o.NumberAlignment = Alignment.Right); foreach (var entry in csvz.Entries) { table.AddRow(entry.Name, entry.Length, entry.RowCount, entry.ColumnCount); } table.Write(Format.Minimal); return(0); }