Pasmaak Opmaak Toe Op Velde
Soms moet gebruikers persoonlike formatering op velde toepas. In hierdie artikel sal ons kyk na’n paar voorbeelde van hoe dit gedoen kan word.
Om meer opsies te leer, sien die volledige lys van eienskappe vir elke veld tipe in die ooreenstemmende klas in die Fields namespace.
Hoe Om Pasgemaakte Formatering Toe Te Pas Op Veldresultaat
Aspose.Words verskaf API vir persoonlike opmaak van veld se resultaat. Jy kan IFieldResultFormatter koppelvlak implementeer om te beheer hoe die veldresultaat geformateer is. Jy kan numeriese formaatskakelaar toepas, d.w. s. # “#.##”, datum/tyd formaatskakelaar, d. w. s. @ “dd.MM.yyyy”, en getalformaatskakelaar, d. w. s. * Ordinal.
Die volgende kode voorbeeld toon hoe om persoonlike formatering vir die veld resultaat toe te pas:
| // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
| Document doc = new Document(); | |
| doc.FieldOptions.ResultFormatter = new FieldResultFormatter("[{0:N2}]", null); | |
| DocumentBuilder builder = new DocumentBuilder(doc); | |
| Field field = builder.InsertField("=-1234567.89 \\# \"### ### ###.000\"", null); | |
| field.Update(); | |
| doc.Save(ArtifactsDir + "WorkingWithFields.FormatFieldResult.docx"); |
| // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
| class FieldResultFormatter : IFieldResultFormatter | |
| { | |
| public FieldResultFormatter(string numberFormat, string dateFormat) | |
| { | |
| mNumberFormat = numberFormat; | |
| mDateFormat = dateFormat; | |
| } | |
| public FieldResultFormatter() | |
| : this(null, null) | |
| { | |
| } | |
| public override string FormatNumeric(double value, string format) | |
| { | |
| mNumberFormatInvocations.Add(new object[] { value, format }); | |
| return string.IsNullOrEmpty(mNumberFormat) | |
| ? null | |
| : string.Format(mNumberFormat, value); | |
| } | |
| public override string FormatDateTime(DateTime value, string format, CalendarType calendarType) | |
| { | |
| mDateFormatInvocations.Add(new object[] { value, format, calendarType }); | |
| return string.IsNullOrEmpty(mDateFormat) | |
| ? null | |
| : string.Format(mDateFormat, value); | |
| } | |
| public override string Format(string value, GeneralFormat format) | |
| { | |
| throw new NotImplementedException(); | |
| } | |
| public override string Format(double value, GeneralFormat format) | |
| { | |
| throw new NotImplementedException(); | |
| } | |
| private readonly string mNumberFormat; | |
| private readonly string mDateFormat; | |
| private readonly ArrayList mNumberFormatInvocations = new ArrayList(); | |
| private readonly ArrayList mDateFormatInvocations = new ArrayList(); | |
| } |
Hoe om IF toestand te evalueer
As jy IF toestand na Mail Merge wil evalueer, kan jy die EvaluateCondition metode gebruik wat onmiddellik die resultaat van die uitdrukking evaluering teruggee.
Die volgende kode voorbeeld toon hoe om hierdie metode te gebruik:
| // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
| DocumentBuilder builder = new DocumentBuilder(); | |
| FieldIf field = (FieldIf) builder.InsertField("IF 1 = 1", null); | |
| FieldIfComparisonResult actualResult = field.EvaluateCondition(); | |
| Console.WriteLine(actualResult); |
Hoe Om Pasgemaakte Formatering Op Tydveld Toe Te Pas
By verstek Aspose.Words updates TIME veld met huidige kultuur kort tyd formaat. Ons het uitgevind dat daar’n verskil is tussen Microsoft Word formatering en .NET/Windows formatering, en ook tussen verskillende .NET Framework weergawes. As u die TIME - veld volgens u vereiste wil formateer, kan u dit bereik deur die IFieldUpdateCultureProvider - koppelvlak te implementeer.
Die volgende kode voorbeelde toon hoe om persoonlike formatering toe te pas op die TIME veld:
| // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
| Document doc = new Document(); | |
| DocumentBuilder builder = new DocumentBuilder(doc); | |
| builder.InsertField(FieldType.FieldTime, true); | |
| doc.FieldOptions.FieldUpdateCultureSource = FieldUpdateCultureSource.FieldCode; | |
| doc.FieldOptions.FieldUpdateCultureProvider = new FieldUpdateCultureProvider(); | |
| doc.Save(ArtifactsDir + "WorkingWithFields.FieldUpdateCulture.pdf"); |
| // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
| class FieldUpdateCultureProvider : IFieldUpdateCultureProvider | |
| { | |
| public CultureInfo GetCulture(string name, Field field) | |
| { | |
| switch (name) | |
| { | |
| case "ru-RU": | |
| CultureInfo culture = new CultureInfo(name, false); | |
| DateTimeFormatInfo format = culture.DateTimeFormat; | |
| format.MonthNames = new[] | |
| { | |
| "месяц 1", "месяц 2", "месяц 3", "месяц 4", "месяц 5", "месяц 6", "месяц 7", "месяц 8", | |
| "месяц 9", "месяц 10", "месяц 11", "месяц 12", "" | |
| }; | |
| format.MonthGenitiveNames = format.MonthNames; | |
| format.AbbreviatedMonthNames = new[] | |
| { | |
| "мес 1", "мес 2", "мес 3", "мес 4", "мес 5", "мес 6", "мес 7", "мес 8", "мес 9", "мес 10", | |
| "мес 11", "мес 12", "" | |
| }; | |
| format.AbbreviatedMonthGenitiveNames = format.AbbreviatedMonthNames; | |
| format.DayNames = new[] | |
| { | |
| "день недели 7", "день недели 1", "день недели 2", "день недели 3", "день недели 4", | |
| "день недели 5", "день недели 6" | |
| }; | |
| format.AbbreviatedDayNames = new[] | |
| { "день 7", "день 1", "день 2", "день 3", "день 4", "день 5", "день 6" }; | |
| format.ShortestDayNames = new[] { "д7", "д1", "д2", "д3", "д4", "д5", "д6" }; | |
| format.AMDesignator = "До полудня"; | |
| format.PMDesignator = "После полудня"; | |
| const string pattern = "yyyy MM (MMMM) dd (dddd) hh:mm:ss tt"; | |
| format.LongDatePattern = pattern; | |
| format.LongTimePattern = pattern; | |
| format.ShortDatePattern = pattern; | |
| format.ShortTimePattern = pattern; | |
| return culture; | |
| case "en-US": | |
| return new CultureInfo(name, false); | |
| default: | |
| return null; | |
| } | |
| } | |
| } |