Overzicht velden
Meestal een veld, wanneer ingevoegd in Microsoft Word, bevat al een actuele waarde. Als het veld bijvoorbeeld een formule of een paginanummer is, bevat het een correcte berekende waarde voor de gegeven versie van het document. Maar als je een toepassing hebt die een document aanmaakt of wijzigt met velden (bijvoorbeeld twee documenten combineert of met gegevens bevolkt) dan moeten alle velden idealiter worden bijgewerkt om het document bruikbaar te maken.
Een veld bestaat uit:
- De veldstart- en scheidingsknooppunten worden gebruikt om de inhoud van de veldcode te omvatten (normaal gesproken als platte tekst)
- De veldscheiding en het veldeinde omvatten het veldresultaat. Dit kan bestaan uit verschillende soorten content, variërend van tekstreeksen tot paragrafen tot tabellen.
- Sommige velden kunnen geen scheidingsteken hebben wat betekent dat de gehele inhoud de veldcode vormt.
- De veldcode definieert het gedrag van het veld en bestaat uit de veldidentificatie en vaak andere parameters zoals veldnaam en switches.
- Het veldresultaat bevat de meest recente evaluatie van het veld. Deze waarde wordt opgeslagen in het veld resultaat en is wat wordt weergegeven aan de gebruiker. Sommige velden hebben mogelijk geen veldresultaat, zodat er niets in het document wordt weergegeven. Ook sommige velden kunnen nog niet worden bijgewerkt, dus zal ook geen veldresultaat hebben.
Hier is een overzicht van hoe een veld wordt opgeslagen in Aspose.Words door gebruik te maken van het voorbeeld van “DocumentExplorer.” Github.
Aspose.Words is een klasse bibliotheek ontworpen voor server-side verwerking van Microsoft Word documenteert en ondersteunt velden op de volgende manieren:
- Alle velden in een document worden bewaard tijdens open/opslaan en conversies.
- Het is mogelijk om de resultaten van enkele van de meest populaire velden bij te werken.
Velden in Microsoft Word
Velden in Microsoft Word documenten zijn complex. Er zijn meer dan 50 veldtypes (elk heeft zijn eigen resultaat berekeningsprocedure nodig), formules en expressies, bladwijzers en referenties, functies en diverse switches. Velden kunnen ook genest worden. Normaal gesproken wordt bij het openen van een document het veldresultaat (de waarde van het veld) getoond voor alle velden in het document. U kunt het weergeven van veldresultaat of veldcodes in schakelen Microsoft Word voor alle velden door in te drukken ALT+F9.
Veldcode | Veldresultaat |
---|---|
Velden invoegen in Microsoft Word
Een veld invoegen in Microsoft Word:
- Klik op de Insert menu.
- Klik op de Quick Parts keuzemenu
- Selecteren Field
- U krijgt een scherm gepresenteerd waarmee u de details van het veld kunt invoeren. Aan de linkerkant krijgt u een lijst van de mogelijke velden en aan de rechterkant is een scherm om de eigenschappen van het veld visueel te bewerken.
- Daarnaast kunt u de Field Codes knop waarmee u de veldcode direct kunt schrijven.
- Schakelaars kunnen ook worden ingevoegd met behulp van de Options knop
- Vul de gewenste velden in met de juiste informatie en druk vervolgens op Ok.
- Het veld wordt ingevoegd in het document op de huidige cursorpositie.
Velden bijwerken in Microsoft Word
Een enkel veld bijwerken in Microsoft Word:
- Verplaats de caret in het veld dat u wilt bijwerken.
- Drukken F9 om het veld bij te werken.
Alle velden in bijwerken Microsoft Word:
- Drukken Druk op Ctrl+A om alle inhoud in het document te selecteren.
- Drukken F9 alle velden in de selectie bijwerken.
Schakelen tussen weergave van veldcode en veldresultaat
Om veldcodes van één veld in te schakelen Microsoft Word:
- Verplaats de caret naar het gewenste veld.
- Drukken SHIFT+F9 om de veldcode alleen voor dit veld te schakelen.
Veldcodes van alle velden in schakelen Microsoft Word:
- Drukken ALT+F9
Velden omzetten naar statische tekst in Microsoft Word
Een dynamisch veld omzetten naar statische tekst in Microsoft Word:
- Verplaats de caret naar het veld dat je wilt converteren.
- Drukken Ctrl+Shift+F9 de velden omzetten naar statische tekst.
Een veld verwijderen in Microsoft Word
Een veld in verwijderen Microsoft Word:
- Selecteer de volledige inhoud van het veld. Als veldcodes worden weergegeven dan moeten ook de openings- en eindehaakjes worden geselecteerd.
- Drukken Delete om het hele veld te verwijderen.
Velden in Aspose.Words
Wanneer een document geladen wordt Aspose.Words de velden van het document worden geladen in de Aspose.Words Document Object Model als een reeks afzonderlijke componenten (nodes). Een enkel veld wordt geladen als een verzameling van FieldStart, FieldSeparator en FieldEnd knooppunten samen met de inhoud tussen deze knooppunten. Als een veld geen veldresultaat heeft dan zal er geen FieldSeparator Node. Al deze knooppunten zijn altijd inline (als kinderen van Paragraph of SmartTag.
De inhoud van de veldcode wordt opgeslagen als Run nodes tussen de FieldStart en FieldSeparator. Het veld resultaat wordt opgeslagen tussen de FieldSeparator en FieldEnd knooppunten en kunnen bestaan uit verschillende soorten inhoud. Normaal gesproken bevat het veldresultaat alleen tekst die bestaat uit Run knooppunten, maar het is mogelijk voor de FieldEnd knooppunt te worden geplaatst in een volledig andere paragraaf, en dus het maken van het veld resultaat bestaat uit blok niveau knooppunten zoals Table en Paragraph Knooppunten ook.
In Aspose.Words elk van de FieldXXX nodes afkomstig van FieldChar. Deze klasse biedt een eigenschap om het type veld dat wordt weergegeven door de opgegeven knooppunt te controleren via de FieldChar.field_type eigendom. Bijvoorbeeld FieldType.FIELD_MERGE_FIELD vertegenwoordigt een merge-veld in het document.
Er zijn een aantal specifieke velden die bestaan in een Word-document die niet worden geïmporteerd in Aspose.Words als verzameling van FieldXXX knooppunten. Bijvoorbeeld, LINK
veld en INCLUDEPICTURE
veld worden geïmporteerd in Aspose.Words als a Shape object. Dit object geeft eigenschappen om te werken met de beeldgegevens die normaal worden opgeslagen in deze velden.
Formuliervelden worden ook geïmporteerd in Aspose.Words als hun eigen speciale klasse. De FormField klasse vertegenwoordigt een formulierveld in een Word-document en biedt aanvullende methoden die specifiek zijn voor een formulierveld.
Velden ondersteund tijdens bijwerken
Berekening van de volgende velden wordt ondersteund in de huidige versie van Aspose.Words:
- = (formuleveld)
ADDRESSBLOCK
AUTHOR
COMPARE
CREATEDATE
DATE
DOCPROPERTY
DOCVARIABLE
GREETINGLINE
IF
INCLUDETEXT
MERGEFIELD
MERGEREC
MERGESEQ
NEXT
NEXTIF
NUMPAGES
PAGE
PAGEREF
REF
SECTION
SECTIONPAGES
SEQ
SET
STYLEREF
TIME
TITLE
TOA
TOC
(inclusief TOT en TOF)- TC
Verfijnde verwerking
Aspose.Words volgt de weg Microsoft Word verwerkt velden en verwerkt als gevolg daarvan correct:
- geneste velden
: IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"
- Veldargument kan het resultaat zijn van een genest veld.
- Velden kunnen zowel binnen een veldcode als in het veldresultaat worden genest.
- Spaties/geen spaties, citaten/geen aanhalingstekens, ontsnappingstekens in velden enz.:
MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\e
- Velden die over meerdere paragrafen gaan.
Formulevelden
Aspose.Words een zeer ernstige toepassing van de formulemotor en ondersteunt het volgende:
- Rekenkundige en logische operators:
=(54+4*(6-77)-(5))+(-6-5)/4/5
- Functies:
=ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"
- Verwijzingen naar bladwijzers:
=IF(C>4, 5,ABS(A)*.76) +3.85
- Nummeropmaak schakelaars:
=00000000 \\\# "$#,##0.00;($#,##0.00)"
De volgende functies in expressies worden ondersteund: ABS
, AND
, AVERAGE
, COUNT
, DEFINED
, FALSE
, IF
, INT
, MAX
, MIN
, MOD
, NOT
, OR
, PRODUCT
, ROUND
, SIGN
, SUM
, TRUE.
IF
en COMPARE
Velden
Een deel van de IF
uitdrukkingen die Aspose.Words kan gemakkelijk berekenen moet u een idee geven van hoe krachtig deze functie is:
IF 3 > 5.7^4+MAX(4,3) True False
IF "abcd" > "abc" True False
IF "?ab*" = "1abdsg" True False
IF 4 = "2*2" True False
COMPARE 3+5/34 < 4.6/3/2
DATE
en TIME
Velden
Aspose.Words ondersteunt alle datum en tijd formattering switches beschikbaar in Microsoft Word, Enkele voorbeelden zijn:
DATE @ "d-MMM-yy"
DATE @ "d/MM/yyyy h:mm am/pm
Mail Merge Velden
Aspose.Words legt geen beperking op aan de complexiteit van Mail Merge velden in uw documenten en ondersteunt geneste IF
en formule velden en kan zelfs berekenen de merge veld
Enkele voorbeelden van Mail Merge velden die Aspose.Words ondersteunt:
- Mail merge veldschakelaars:
MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "
- geneste velden samenvoegen in een formule:
IF {
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } True False
- Bereken de naam van het merge-veld op runtime:
MERGEFIELD {
ALS{
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } FirstName"LastName" }
- Voorwaardelijke overgang naar de volgende record in de gegevensbron:
NEXTIF {
MERGEFIELDValue1 } <= { =IF(-2.45 >= 6*{
MERGEFIELDValue2 }, 2, -.45) }
Formaatschakelaars
Een veld in een document kan formatteringsschakelaars bevatten die aangeven hoe de resulterende waarde geformatteerd moet worden. Aspose.Words ondersteunt de volgende format switches:
- @ - datum en tijd opmaak
- \# - nummeropmaak
- \\\\* Caps
- \\\\* EersteCap
- \\\\* Lager
- \\\\* Boven
- \\\\* CHARFORMAT-formaat resultaat volgens het eerste teken van de veldcode.
- \\\\* MERGEFORMAT-formaat resultaat volgens hoe het oude resultaat is geformatteerd.
Date en nummeropmaak in velden
Wanneer Aspose.Words Berekent een veldresultaat, het moet vaak een string verwerken in een getal of datum waarde en ook om het terug te formatteren naar een string. Standaard Aspose.Words gebruikt de huidige draadcultuur voor het uitvoeren van ontleden en formatteren bij het berekenen van veldwaarden tijdens veldupdate en mail merge. Er zijn ook opties in de vorm van de FieldOptions klasse die verdere controle mogelijk maakt over welke cultuur tijdens veldupdate wordt gebruikt.
- Standaard FieldOptions.field_update_culture_source eigenschap is ingesteld op FieldUpdateCultureSource.CURRENT_THREAD welke velden formatteren met behulp van de huidige draadcultuur.
- Deze eigenschap kan ingesteld worden op FieldUpdateCultureSource.FIELD_CODE dus de taal die is ingesteld uit de veldcode van het veld wordt gebruikt voor het formatteren in plaats daarvan.
Formatteren met de huidige discussiecultuur
Om de cultuur die tijdens veldberekening wordt gebruikt te controleren, gebruik je de lokale.setlocale methode om de cultuur van uw keuze te bepalen alvorens veldberekening aan te roepen. Hieronder laat je zien hoe je de cultuur kunt veranderen die gebruikt wordt in het formatteren van velden tijdens de update.
Het gebruik van de huidige cultuur om velden te formatteren stelt een systeem in staat om eenvoudig en consequent te controleren hoe alle velden in het document worden geformatteerd tijdens veldupdate.
Formatteren met behulp van de cultuur in het document
Aan de andere kant, Microsoft Word formatteert elk individueel veld op basis van de taal van de tekst in het veld (in het bijzonder, de runs van de veldcode). Soms tijdens het bijwerken van het veld kan dit het gewenste gedrag zijn, bijvoorbeeld als je documenten hebt geglobaliseerd die inhoud bevatten bestaande uit vele verschillende talen en wil dat elke velden om de locale gebruikt uit de tekst te eren. Aspose.Words ondersteunt ook deze functionaliteit.
De Document klasse geeft a field_options eigenschap die leden bevat die kunnen worden gebruikt om te controleren hoe velden worden bijgewerkt in het document. Hieronder laat u zien hoe u kunt aangeven waar de cultuur gebruikt voor datumopmaak tijdens veldupdate en Mail Merge is gekozen uit.
Het vinden van de veldcode en het veldresultaat
Een veld dat wordt ingevoegd met behulp van DocumentBuilder.insert_field geeft a Field object. Dit is een gevel klasse die handige methoden biedt om snel dergelijke eigenschappen van een veld te vinden. Opmerking als u alleen op zoek bent naar de namen van merge velden in het document dan kunt u in plaats daarvan de ingebouwde methode gebruiken MailMerge.get_field_names. Onderstaand voorbeeld laat zien hoe namen van alle merge-velden in een document kunnen worden opgehaald.
Hoe verzamelvelden hernoemen
Onderstaand voorbeeld laat zien hoe je merge velden hernoemt in een Word-document.