public void FullClassBuilding() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("Field2", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field3", typeof(int)); engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt")); Assert.AreEqual(4, dt.Rows.Count); Assert.AreEqual(4, engine.TotalRecords); Assert.AreEqual(0, engine.ErrorManager.ErrorCount); Assert.AreEqual("Field1", dt.Columns[0].ColumnName); Assert.AreEqual("Field2", dt.Columns[1].ColumnName); Assert.AreEqual("Field3", dt.Columns[2].ColumnName); Assert.AreEqual("Hola", dt.Rows[0][1]); Assert.AreEqual(DateTime.Today, dt.Rows[2][0]); }
public void SaveLoadXmlFileDelimited2() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("FieldTwo", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field333", typeof(int)); cb.SaveToXml(@"runtime.xml"); engine = new FileHelperEngine(ClassBuilder.ClassFromXmlFile("runtime.xml")); Assert.AreEqual("Customers", engine.RecordType.Name); Assert.AreEqual(3, engine.RecordType.GetFields().Length); Assert.AreEqual("Field1", engine.RecordType.GetFields()[0].Name); }
public void TestingNameAndTypes() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("Field2", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field3", typeof(int)); engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt")); Assert.AreEqual("Field1", dt.Columns[0].ColumnName); Assert.AreEqual(typeof(DateTime), dt.Columns[0].DataType); Assert.AreEqual("Field2", dt.Columns[1].ColumnName); Assert.AreEqual(typeof(string), dt.Columns[1].DataType); Assert.AreEqual("Field3", dt.Columns[2].ColumnName); Assert.AreEqual(typeof(int), dt.Columns[2].DataType); }
public void RunTimeEmptyGuidProperties() { var builder = new DelimitedClassBuilder("EntityWithGuid", "\t"); builder.AddField("Name", typeof(string)); builder.AddField("Id", typeof(Guid)); builder.LastField.FieldNullValue = Guid.Empty; var engine = new FileHelperEngine(builder.CreateRecordClass()) { Options = { IgnoreFirstLines = 1 } }; const string inputValue = @"Name Id first second "; var records = engine.ReadString(inputValue); Check.That(records.Length).IsEqualTo(2); dynamic record = records[0]; Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty); Check.That(((string)record.Name)).IsEqualTo("first"); record = records[1]; Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty); Check.That(((string)record.Name)).IsEqualTo("second"); }
static void RunTimeRecords() { Console.WriteLine("Run Time Records now =) ..."); Console.WriteLine(); DelimitedClassBuilder cb = new DelimitedClassBuilder("Customer", ","); cb.AddField("CustId", typeof(Int32)); cb.AddField("Name", typeof(string)); cb.AddField("Balance", typeof(Decimal)); cb.AddField("AddedDate", typeof(DateTime)); cb.LastField.Converter.Kind = ConverterKind.Date; cb.LastField.Converter.Arg1 = "ddMMyyyy"; // Estas dos lineas son el uso de la librería FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(@"..\Data\CustomersDelimited.txt"); // Aqui es donde ustedes agregan su código foreach (DataRow dr in dt.Rows) { Console.WriteLine("Customer: " + dr[0].ToString() + " - " + dr[1].ToString()); } }
public void RunTimeNullableFields() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field1", "int?"); cb.AddField("Field2", typeof(int?)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); }
public ReadUsersFromFileDynamic() { var userRecordClassBuilder = new DelimitedClassBuilder("UserRecord", "\t"); userRecordClassBuilder.IgnoreFirstLines = 1; userRecordClassBuilder.AddField("Id", typeof(Int32)); userRecordClassBuilder.AddField("Name", typeof(String)); userRecordClassBuilder.AddField("Email", typeof(String)); _tblClass = userRecordClassBuilder.CreateRecordClass(); }
public void RunTimeGenerics() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field2", typeof(Dictionary <int, List <string> >)); cb.AddField("Field1", "List<int>"); cb.AddField("Field2", typeof(List <int>)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); }
public void RunTimeMultimpleInstances() { var cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field1", "int?"); cb.AddField("Field2", typeof(int?)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); cb.CreateRecordClass(); cb.CreateRecordClass(); }
public void RunTimeGenerics() { var cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field2", typeof(Dictionary <int, List <string> >)); cb.AddField("Field1", "System.Collections.Generic.List<int>"); cb.AddField("Field7", typeof(List <int>)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); cb.CreateRecordClass(); }
public static FileHelperAsyncEngine Create(InputContext context) { var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)); var delimiter = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter; var builder = new DelimitedClassBuilder(identifier) { IgnoreEmptyLines = true, Delimiter = delimiter, IgnoreFirstLines = context.Connection.Start }; foreach (var field in context.InputFields) { var fieldBuilder = builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } FileHelpers.ErrorMode errorMode; Enum.TryParse(context.Connection.ErrorMode, true, out errorMode); var engine = new FileHelperAsyncEngine(builder.CreateRecordClass()); engine.ErrorManager.ErrorMode = errorMode; engine.ErrorManager.ErrorLimit = context.Connection.ErrorLimit; return(engine); }
protected virtual void PrepareType(Entity entity) { var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName()) { IgnoreEmptyLines = true, Delimiter = _connection.Delimiter.ToString(CultureInfo.InvariantCulture), IgnoreFirstLines = 0 }; foreach (var f in _fileFields) { var field = new DelimitedFieldBuilder(f.Identifier, f.SystemType); if (f.SimpleType.Equals("datetime")) { field.Converter.Kind = ConverterKind.Date; field.Converter.Arg1 = _connection.DateFormat; } if (f.SimpleType.Equals("guid")) { field.Converter.TypeName = "Transformalize.Operations.Load.GuidConverter"; } if (f.SimpleType.Equals("byte[]") || f.SimpleType.Equals("rowversion")) { field.Converter.TypeName = "Transformalize.Operations.Load.ByteArrayConverter"; } if (_isCsv) { field.FieldQuoted = true; field.QuoteChar = '"'; field.QuoteMode = QuoteMode.OptionalForBoth; field.QuoteMultiline = MultilineMode.NotAllow; } builder.AddField(field); } Type = builder.CreateRecordClass(); }
public DelimitedFileReader(InputContext context, IRowFactory rowFactory, IRowCondition rowCondition) { _context = context; _rowFactory = rowFactory; _rowCondition = rowCondition; var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)); _builder = new DelimitedClassBuilder(identifier) { IgnoreEmptyLines = true, Delimiter = context.Connection.Delimiter, IgnoreFirstLines = context.Connection.Start }; _fileInfo = new FileInfo(_context.Connection.File); foreach (var field in context.InputFields) { var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = _context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForRead; fieldBuilder.FieldOptional = field.Optional; } }
public void ReadAsDataTable1() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.IgnoreEmptyLines = true; cb.GenerateProperties = true; cb.AddField("FirstName", typeof(string)); cb.LastField.TrimMode = FileHelpers.TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("LastName", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetNumber", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetAddress", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Unit", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("City", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("State", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Zip", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; var engine = new FileHelperEngine(cb.CreateRecordClass()); string source = "Alex & Jen,Bouquet,1815,Bell Rd,, Batavia,OH,45103" + Environment.NewLine + "Mark & Lisa K ,Arlinghaus,1817,Bell Rd,, Batavia,OH,45103" + Environment.NewLine + "Ed & Karen S ,Craycraft,1819,Bell Rd,, Batavia,OH,45103" + Environment.NewLine; DataTable contactData = engine.ReadStringAsDT(source); Assert.AreEqual(3, contactData.Rows.Count); Assert.AreEqual(8, contactData.Columns.Count); Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString()); Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString()); // new DelimitedClassBuilder("", ","); }
// DELIMITED private void CreateDelimiterOptions(string[][] sampleData, List <RecordFormatInfo> res, char delimiter = '\0') { var delimiters = new List <DelimiterInfo>(); if (delimiter == '\0') { delimiters = GetDelimiters(sampleData); } else { delimiters.Add(GetDelimiterInfo(sampleData, delimiter)); } foreach (var info in delimiters) { var format = new RecordFormatInfo { mConfidence = (int)((1 - info.Deviation) * 100) }; AdjustConfidence(format, info); var fileHasHeaders = false; if (FileHasHeaders.HasValue) { fileHasHeaders = FileHasHeaders.Value; } else { fileHasHeaders = DetectIfContainsHeaders(info, sampleData); } var builder = new DelimitedClassBuilder("AutoDetectedClass", info.Delimiter.ToString()) { IgnoreFirstLines = fileHasHeaders ? 1 : 0 }; var firstLineSplitted = sampleData[0][0].Split(info.Delimiter); for (int i = 0; i < info.Max + 1; i++) { string name = "Field " + (i + 1).ToString().PadLeft(3, '0'); if (fileHasHeaders && i < firstLineSplitted.Length) { name = firstLineSplitted[i]; } var f = builder.AddField(StringHelper.ToValidIdentifier(name)); if (i > info.Min) { f.FieldOptional = true; } } format.mClassBuilder = builder; res.Add(format); } }
protected override void PrepareType(Entity entity) { var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName()) { IgnoreEmptyLines = true, Delimiter = " ", IgnoreFirstLines = 0 }; builder.AddField(_htmlField, typeof(string)); Type = builder.CreateRecordClass(); }
public void ReadAsDataTableWithCustomConverter() { var fields = new[] { "FirstName", "LastName", "StreetNumber", "StreetAddress", "Unit", "City", "State", }; var cb = new DelimitedClassBuilder("ImportContact", ","); // Add assembly reference cb.AdditionalReferences.Add(typeof(MyCustomConverter).Assembly); foreach (var f in fields) { cb.AddField(f, typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; } cb.AddField("Zip", typeof(int?)); cb.LastField.Converter.TypeName = "FileHelpers.Tests.Dynamic.DelimitedClassBuilderTests.MyCustomConverter"; mEngine = new FileHelperEngine(cb.CreateRecordClass()); string source = "Alex & Jen,Bouquet,1815,Bell Rd,, Batavia,OH,45103" + Environment.NewLine + "Mark & Lisa K ,Arlinghaus,1817,Bell Rd,, Batavia,OH,NaN" + Environment.NewLine + "Ed & Karen S ,Craycraft,1819,Bell Rd,, Batavia,OH,45103" + Environment.NewLine; var contactData = mEngine.ReadString(source); Assert.AreEqual(3, contactData.Length); var zip = mEngine.RecordType.GetFields()[7]; Assert.AreEqual("Zip", zip.Name); Assert.IsNull(zip.GetValue(contactData[1])); Assert.AreEqual((decimal)45103, zip.GetValue(contactData[2])); }
public void ReadAsDataTable2() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.IgnoreEmptyLines = true; cb.GenerateProperties = true; cb.AddField("FirstName", typeof(string)); cb.LastField.TrimMode = FileHelpers.TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("LastName", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetNumber", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetAddress", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Unit", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("City", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("State", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Zip", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; var engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable contactData = engine.ReadFileAsDT(TestCommon.GetPath("Good", "ReadAsDataTable.txt")); Assert.AreEqual(3, contactData.Rows.Count); Assert.AreEqual(8, contactData.Columns.Count); Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString()); Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString()); // new DelimitedClassBuilder("", ","); }
public static FileHelperAsyncEngine Create(OutputContext context) { var delimiter = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter; var builder = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name))) { IgnoreEmptyLines = true, Delimiter = delimiter, IgnoreFirstLines = 0 }; foreach (var field in context.OutputFields) { var fieldBuilder = builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } FileHelpers.ErrorMode errorMode; Enum.TryParse(context.Connection.ErrorMode, true, out errorMode); FileHelperAsyncEngine engine; if (context.Connection.Header == Constants.DefaultSetting) { var headerText = string.Join(delimiter, context.OutputFields.Select(f => f.Label.Replace(delimiter, " "))); engine = new FileHelperAsyncEngine(builder.CreateRecordClass()) { ErrorMode = errorMode, HeaderText = headerText, FooterText = context.Connection.Footer }; } else { engine = new FileHelperAsyncEngine(builder.CreateRecordClass()) { ErrorMode = errorMode }; if (context.Connection.Header != string.Empty) { engine.HeaderText = context.Connection.Header; } if (context.Connection.Footer != string.Empty) { engine.FooterText = context.Connection.Footer; } } return(engine); }
private Type GetDynamicMasterType() { var masterCb = new DelimitedClassBuilder("CustomDynamicType", ";"); //masterCb.IgnoreFirstLines = 1; masterCb.IgnoreEmptyLines = true; masterCb.AddField("Code", typeof(string)); masterCb.AddField("Field1", typeof(DateTime)); masterCb.LastField.TrimMode = TrimMode.Both; masterCb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; masterCb.LastField.FieldNullValue = DateTime.Today; masterCb.AddField("Field2", typeof(string)); masterCb.LastField.FieldQuoted = true; masterCb.LastField.QuoteChar = '"'; masterCb.AddField("Field3", typeof(int)); return(masterCb.CreateRecordClass()); }
private DelimitedClassBuilder ExamineGridForColumnOrder(string delimiter) { DelimitedClassBuilder classBuilder = new DelimitedClassBuilder("ProposedOrders", delimiter); foreach (Column column in grid.VisibleColumns.Where(column => column.Visible && column.FieldName != "ErrorString")) { classBuilder.AddField(column.FieldName, typeof(string)); classBuilder.LastField.TrimMode = TrimMode.Both; classBuilder.LastField.FieldQuoted = true; } return(classBuilder); }
public void LoopingFields() { var cb = new DelimitedClassBuilder("MyClass", ","); string[] lst = { "fieldOne", "fieldTwo", "fieldThree" }; for (int i = 0; i < lst.Length; i++) { cb.AddField(lst[i].ToString(), typeof(string)); } var engineTemp = new FileHelperEngine(cb.CreateRecordClass()); }
public void SaveLoadXmlOptionsString() { var cbOrig = new DelimitedClassBuilder("Customers", ","); cbOrig.AddField("Field1", typeof(DateTime)); cbOrig.AddField("FieldTwo", typeof(string)); cbOrig.RecordCondition.Condition = RecordCondition.ExcludeIfMatchRegex; cbOrig.RecordCondition.Selector = @"\w*"; cbOrig.IgnoreCommentedLines.CommentMarker = "//"; cbOrig.IgnoreCommentedLines.InAnyPlace = false; cbOrig.IgnoreEmptyLines = true; cbOrig.IgnoreFirstLines = 123; cbOrig.IgnoreLastLines = 456; cbOrig.SealedClass = false; string xml = cbOrig.SaveToXmlString(); cbOrig = null; ClassBuilder cb2 = ClassBuilder.LoadFromXmlString(xml); Assert.AreEqual("Customers", cb2.ClassName); Assert.AreEqual(2, cb2.FieldCount); Assert.AreEqual("Field1", cb2.Fields[0].FieldName); Assert.AreEqual(RecordCondition.ExcludeIfMatchRegex, cb2.RecordCondition.Condition); Assert.AreEqual(@"\w*", cb2.RecordCondition.Selector); Assert.AreEqual("//", cb2.IgnoreCommentedLines.CommentMarker); Assert.AreEqual(false, cb2.IgnoreCommentedLines.InAnyPlace); Assert.AreEqual(false, cb2.SealedClass); Assert.AreEqual(true, cb2.IgnoreEmptyLines); Assert.AreEqual(123, cb2.IgnoreFirstLines); Assert.AreEqual(456, cb2.IgnoreLastLines); }
private void ClassBuilder(int ignoreLines, IDictionary <int, string> fieldNames, char[] separator) { var builder = new DelimitedClassBuilder("UserRecord", separator[0].ToString()) { IgnoreFirstLines = ignoreLines }; foreach (var field in fieldNames.OrderBy(x => x.Key)) { builder.AddField(field.Value, typeof(string)); } InputType = builder.CreateRecordClass(); }
public void SaveLoadXmlFileDelimited() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("FieldTwo", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field333", typeof(int)); cb.SaveToXml(@"runtime.xml"); var loaded = (DelimitedClassBuilder)ClassBuilder.LoadFromXml(@"runtime.xml"); Assert.AreEqual("Field1", loaded.FieldByIndex(0).FieldName); Assert.AreEqual("FieldTwo", loaded.FieldByIndex(1).FieldName); Assert.AreEqual("Field333", loaded.FieldByIndex(2).FieldName); Assert.AreEqual("System.DateTime", loaded.FieldByIndex(0).FieldType); Assert.AreEqual("System.String", loaded.FieldByIndex(1).FieldType); Assert.AreEqual("System.Int32", loaded.FieldByIndex(2).FieldType); Assert.AreEqual(QuoteMode.AlwaysQuoted, loaded.FieldByIndex(0).QuoteMode); Assert.AreEqual(false, loaded.FieldByIndex(0).FieldQuoted); Assert.AreEqual('"', loaded.FieldByIndex(1).QuoteChar); Assert.AreEqual(true, loaded.FieldByIndex(1).FieldQuoted); }
private static void Main(string[] args) { var cb = new DelimitedClassBuilder("Customer", ","); cb.AddField("SomeField", typeof(String)); cb.LastField.Converter.TypeName = typeof(OtherNameSpace.MyConverter).ToString(); Type recordClass = cb.CreateRecordClass(); var engine = new FileHelperEngine(recordClass); var records = engine.ReadStringAsDT("aaa"); Assert.AreEqual("aaa", records.Rows[0].Field <string>(0)); Console.WriteLine("All OK"); Console.ReadKey(); }
public DelimitedFileWriter(OutputContext context, string fileName = null) { _context = context; _fileName = fileName; _builder = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name))) { IgnoreEmptyLines = true, Delimiter = context.Connection.Delimiter, IgnoreFirstLines = 0 }; foreach (var field in context.OutputFields) { var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } }
protected override void AddFields(DelimitedClassBuilder cb) { cb.AddField("ProgramName", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ProgramUrl", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("CatalogName", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("LastUpdated", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Name", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Keywords", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Description", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Sku", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Manufacturer", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ManufacturerId", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Upc", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Isbn", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Currency", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("SalePrice", typeof(string)); cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.AddField("Price", typeof(string)); cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.AddField("RetailPrice", typeof(string)); cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.AddField("FromPrice", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("BuyUrl", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ImpressionUrl", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ImageUrl", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Gender", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ThirdPartyId", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("ThirdPartyCategory", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Author", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Artist", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Title", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Publisher", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Label", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Format", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Special", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Gift", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("PromotionalText", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("StartDate", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("EndDate", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("OffLine", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("OnLine", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("InStock", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Condition", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Warranty", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("StandardShippingCost", typeof(string)); cb.LastField.FieldOptional = true; }
private DelimitedClassBuilder CreateClassBuilder(char separationChar, bool haveHeader) { DelimitedClassBuilder cb = new DelimitedClassBuilder("TmpPriceImport", separationChar.ToString()); if (haveHeader) { cb.IgnoreFirstLines = 1; } cb.AddField("CodGrundfos", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("CodProv", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Modelo", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Descripcion", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Proveedor", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Frecuencia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("TP"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaTP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("GRP"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaGRP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("PL"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaPL", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Familia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Tipo", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Linea", typeof(string)); cb.LastField.FieldOptional = true; cb.IgnoreEmptyLines = true; return(cb); }
private static void Main(string[] args) { /*var provider = new ExcelStorage(typeof(RaRecord)) { * StartRow = 2, * StartColumn = 1, * SheetName = "Sheet2", * FileName = "test.xlsx" * };*/ //Dynamic Records var cb = new DelimitedClassBuilder("Customer", "|") { IgnoreFirstLines = 1, IgnoreEmptyLines = true }; cb.AddField("BirthDate", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("Name", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Age", typeof(int)); var providerWithDynamicRecord = new ExcelNPOIStorage(cb.CreateRecordClass()) { FileName = Directory.GetCurrentDirectory() + @"\testDynamicRecords.xlsx" }; providerWithDynamicRecord.StartRow = 1; providerWithDynamicRecord.StartColumn = 1; dynamic dynamicRecord = Activator.CreateInstance(providerWithDynamicRecord.RecordType); dynamicRecord.Name = "Jonh"; dynamicRecord.Age = 1; dynamicRecord.BirthDate = DateTime.Now; var valuesList = new List <dynamic> { dynamicRecord, dynamicRecord }; var columnsHeaders = ((System.Reflection.TypeInfo)(dynamicRecord.GetType())).DeclaredFields.Select(x => x.Name).ToList(); providerWithDynamicRecord.ColumnsHeaders = columnsHeaders; providerWithDynamicRecord.InsertRecords(valuesList.ToArray()); //General export of excel with date time columns var provider = new ExcelNPOIStorage(typeof(RaRecord)) { FileName = Directory.GetCurrentDirectory() + @"\test.xlsx" }; provider.StartRow = 0; provider.StartColumn = 0; var records = new List <RaRecord>(); records.Add(new RaRecord() { Level = 123.123m, Name = "Dickie", Startdate = DateTime.Now }); var values = new List <int> { 1, 2, 3 }; records.Add(new RaRecord() { Level = null, Name = "Bavo", Project = "too many", Startdate = DateTime.Now, ListOfIds = string.Join(",", values.Select(n => n.ToString(CultureInfo.InvariantCulture)).ToArray()) }); provider.HeaderRows = 4; provider.InsertRecords(records.ToArray()); var res = (RaRecord[])provider.ExtractRecords(); }