Class ExportConfig
- Namespace
- YndigoBlue.Velocity.Model
- Assembly
- YndigoBlue.Velocity.dll
Configuration for exporting query results to CSV files.
public class ExportConfig
- Inheritance
-
ExportConfig
Examples
Basic export with default settings:
using (Manager manager = new Manager(connection))
{
manager.LoadSchema("my_schema");
Schema schema = manager.GetSchema("my_schema");
Table usersTable = schema["users"];
// Create query
Query query = new Query();
query.AddFromItem(usersTable);
query.AddSelectItem(usersTable["id"]);
query.AddSelectItem(usersTable["username"]);
query.AddSelectItem(usersTable["email"]);
query.AddSelectItem(usersTable["created_at"]);
// Create export config with default ISO format
ExportConfig config = new ExportConfig();
// Export to CSV
string csvFilePath = @"C:\exports\users.csv";
int rowsExported = manager.Export(config, query, csvFilePath);
Console.WriteLine($"Exported {rowsExported} rows");
}
// Output CSV format:
// id,username,email,created_at
// 1,john_doe,john@example.com,2025-01-07 10:30:00
// 2,jane_smith,jane@example.com,2025-01-07 11:45:00
Export with custom CSV format:
// Create config for tab-delimited output
ExportConfig config = new ExportConfig(DateFormatType.Iso);
config.FieldDelimiter = '\t'; // Tab-separated values
config.QuoteCharacter = '\''; // Single quotes
config.ForceQualifier = true; // Always quote fields
config.WriteHeaders = true;
int rowsExported = manager.Export(config, query, csvFilePath);
// Output format:
// 'id'\t'username'\t'email'
// '1'\t'john_doe'\t'john@example.com'
Export with custom date formats:
// Configure for European date format
ExportConfig config = new ExportConfig(DateFormatType.Culture);
config.DateFormat = "dd/MM/yyyy";
config.DateTimeFormat = "dd/MM/yyyy HH:mm:ss";
config.TimestampFormat = "dd/MM/yyyy HH:mm:ss zzz";
int rowsExported = manager.Export(config, query, csvFilePath);
// Output format:
// id,username,created_at
// 1,john_doe,07/01/2025 10:30:00
// 2,jane_smith,07/01/2025 11:45:00
Export without headers:
ExportConfig config = new ExportConfig();
config.WriteHeaders = false; // Don't write header row
int rowsExported = manager.Export(config, query, csvFilePath);
// Output format (no headers):
// 1,john_doe,john@example.com,2025-01-07 10:30:00
// 2,jane_smith,jane@example.com,2025-01-07 11:45:00
Export with forced field quoting:
ExportConfig config = new ExportConfig();
config.ForceQualifier = true; // Quote all fields
config.QuoteCharacter = '"';
int rowsExported = manager.Export(config, query, csvFilePath);
// Output format:
// "id","username","email","created_at"
// "1","john_doe","john@example.com","2025-01-07 10:30:00"
// "2","jane_smith","jane@example.com","2025-01-07 11:45:00"
Export pipe-delimited file:
ExportConfig config = new ExportConfig();
config.FieldDelimiter = '|';
config.QuoteCharacter = '"';
config.LineTerminator = "\r\n"; // Windows line endings
int rowsExported = manager.Export(config, query, csvFilePath);
// Output format:
// id|username|email
// 1|john_doe|john@example.com
// 2|jane_smith|jane@example.com
Export with character trimming:
ExportConfig config = new ExportConfig();
config.TrimChars = true; // Trim leading/trailing whitespace (default)
// Or disable trimming to preserve all whitespace
config.TrimChars = false;
int rowsExported = manager.Export(config, query, csvFilePath);
Export using current culture format:
// Use system's regional settings for dates and list separator
ExportConfig config = new ExportConfig(DateFormatType.Culture);
// This will use:
// - Current culture's date format
// - Current culture's list separator (comma, semicolon, etc.)
// - Current culture's datetime patterns
int rowsExported = manager.Export(config, query, csvFilePath);
Export with custom escape character:
ExportConfig config = new ExportConfig();
config.EscapeCharacter = "\\\\"; // Double backslash for escaping
config.QuoteCharacter = '"';
// Fields with quotes will be escaped:
// "Product with \"quotes\" in name"
int rowsExported = manager.Export(config, query, csvFilePath);
Complete export configuration example:
ExportConfig config = new ExportConfig(DateFormatType.Iso);
// CSV format settings
config.FieldDelimiter = ',';
config.QuoteCharacter = '"';
config.EscapeCharacter = "\\\\";
config.LineTerminator = Environment.NewLine;
config.ForceQualifier = false; // Only quote when necessary
// Output settings
config.WriteHeaders = true;
config.TrimChars = true;
// Date/time formats
config.DateFormat = "yyyy-MM-dd";
config.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
config.TimestampFormat = "yyyy-MM-dd HH:mm:ss zzz";
int rowsExported = manager.Export(config, query, csvFilePath);
Remarks
ExportConfig controls how database query results are formatted and written to CSV files when using Engine.Manager.Export(ExportConfig, Query, string). It handles:
- CSV format settings (delimiters, quote characters, line terminators)
- Date/time output formats
- Header row generation
- Field quoting behavior
- Character trimming
ExportConfig provides two initialization modes:
- ISO Format (default): Uses standard ISO date formats and comma delimiters
- Culture Format: Uses current culture's date formats and list separators
The configuration ensures exported CSV files are properly formatted and can be easily imported into spreadsheet applications, other databases, or re-imported using ImportConfig.