Огляд поля

Aspose.Words Бібліотека класу, призначена для обробки сервера Microsoft Word документи та супровід полів в наступних напрямках:

  • всі поля в документі зберігаються під час відкритого/Зберегти та перетворення
  • можна оновити результати більшості полів

У цій статті ми дізнаємося більше про структуру поля, поля, які підтримуються в Aspose.Words, і деталі роботи з такими полями.

Структура поля

Поле складається з:

  • до Вузли польового старту і сепаратора використовуються для об’єднання вмісту, що робить код поля (звичайно як звичайний текст).
  • Сепаратор родовищ і польовий кінець об’єднують польовий результат. Це може бути виконано з різних типів контенту, починаючи від ходу тексту до абзаців до таблиць.
  • Декілька полів не може мати сепаратор, який означає, що весь вміст робить код поля.
  • до Код поля визначає поведінку поля та складається з ідентифікатора поля та часто інших параметрів, таких як назва поля та вимикачі.
  • до В польових результатах міститься остання оцінка поля. Це значення зберігається в полі результат і є те, що відображається користувачеві. Деякі поля не можуть мати ніяких результатів поля, таким чином, не відображати нічого в документі. Тим не менш, деякі поля не можуть бути оновлені, але тому також не будуть польові результати.

fields-aspose-words

Зміст, що робить код поля, зберігається як Run вузли між FieldStart і FieldSeparatorй Результат поля зберігається між FieldSeparator і FieldEnd вузлів і можуть бути виготовлені з різних типів контенту. Зазвичай результат поля містить лише текст, який складається з Run вузли, однак це можливо для FieldEnd вузол, щоб бути розташований в повністю різних абзацах, і таким чином, що результат поля складається з Логічні рівні імен у документі як Table і Paragraph також вузли.

Ось чому поле зберігається в Aspose.Words за допомогою прикладу “DocumentExplorer” Гитубй

document-explorer-aspose-words

Поле в полях Aspose.Words Document Object Model (Українська)DOMй

Коли документ завантажується Aspose.Words, поля документа завантажуються в поле документа Aspose.Words Document Object Model (DOM) як набір окремих компонентів (неподів). Єдине поле завантажується як збірка FieldStart, FieldSeparator і FieldEnd вершини разом з контентом у цих вузлах. Якщо поле не має поля, то не буде FieldSeparator вузол. Всі ці вершини завжди знайдені в Інтернеті (як діти) Paragraph або SmartTagй

У Aspose.Words кожен з FieldXXX вузли дервії з FieldCharй Даний клас надає майно для перевірки типу поля, представленого за вказаною вершиною через FieldType майно. Приклад FieldType.FieldMergeField являє собою поле злиття в документі.

Підтримувані поля

Розрахунок наступних полів підтримується в поточній версії Aspose.Words:

  • = (формула)
  • ADDRESSBLOCK
  • ASK
  • AUTHOR
  • AUTONUM
  • AUTONUMLGL
  • AUTONUMOUT
  • AUTOTEXT
  • BARCODE
  • COMMENTS
  • COMPARE
  • CREATEDATE
  • DATABASE
  • DATE
  • DISPLAYBARCODE
  • DOCPROPERTY
  • DOCVARIABLE
  • EDITTIME
  • EQ
  • FILENAME
  • FILESIZE
  • FILLIN
  • FORMCHECKBOX
  • FORMDROPDOWN
  • FORMTEXT
  • GLOSSARY
  • GOTOBUTTON
  • GREETINGLINE
  • HYPERLINK
  • IF
  • IMPORT
  • INCLUDE
  • INCLUDEPICTURE
  • INCLUDETEXT
  • INDEX
  • INFO
  • KEYWORDS
  • LASTSAVEDBY
  • LISTNUM
  • MACROBUTTON
  • MERGEBARCODE
  • MERGEFIELD
  • MERGEREC
  • MERGESEQ
  • NEXT
  • NEXTIF
  • NOTEREF
  • NUMCHARS
  • NUMPAGES
  • NUMWORDS
  • PAGE
  • PAGEREF
  • PRINTDATE
  • QUOTE
  • REF
  • REVNUM
  • SAVEDATE
  • SECTION
  • SECTIONPAGES
  • SEQ
  • SET
  • SHAPE
  • SKIPIF
  • STYLEREF
  • SUBJECT
  • SYMBOL
  • TEMPLATE
  • TIME
  • TITLE
  • TOA
  • TOC
  • USERADDRESS
  • USERINITIALS
  • USERNAME

Софістичне поле виховання

Aspose.Words в дорозі Microsoft Word обробляє поля і в результаті це правильно ручки:

  • роз’ємні поля: IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"
  • аргумент поля може бути результатом невидимого поля
  • поля можуть бути відхилені в межах поля, а також в результаті поля
  • пробіли/не пробіли, котирування/не котирування, втечу символи в полях тощо: MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\e
  • поля, які пропускають через кілька абзаців

Сфери формул

Aspose.Words забезпечує дуже серйозне виконання формули двигуна і підтримує наступне:

  • арифметичні та логічні оператори: =(54+4*(6-77)-(5))+(-6-5)/4/5
  • функції: =ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"
  • посилання на закладки: =IF(C>4, 5,ABS(A)*.76) +3.85
  • перемикачі форматування номера: =00000000 \\\# "$#,##0.00;($#,##0.00)"

Підтримуються наступні функції у виразах: ABS, AND, AVERAGE, COUNT, DEFINED, FALSE, IF, INT, MAX, MIN, MOD, NOT, OR, PRODUCT, ROUND, SIGN, SUM, TRUEй

IF і COMPARE Сфери

Просто деякі з IF вирази, які Aspose.Words Ви можете легко розрахувати, як потужна ця функція є:

  • 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 і TIME Сфери

Aspose.Words підтримує всі перемикачі форматування часу, доступні в Microsoft Word, Приклади:

  • DATE @ "d-MMM-yy"
  • DATE @ "d/MM/yyyy h:mm am/pm

Mail Merge Сфери

Aspose.Words не обмежується складністю mail merge полів у ваших документах та підтримках IF і формули поля і навіть можна розрахувати назву поля злиття за допомогою формули.

Деякі приклади mail merge поля, які Aspose.Words опори:

  • до Mail merge польові вимикачі: MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "
  • непристойні поля злиття в формулі: IF { СЕРГЕФІКАЦІЯValue1 } >= {СЕРГЕФІКАЦІЯ Value2 } True False
  • розрахувати ім’я поля злиття на runtime: MERGEFIELD { МСБ{СЕРГЕФІКАЦІЯValue1 } >= {СЕРГЕФІКАЦІЯ Value2 } FirstName"LastName" }
  • умовний перехід на наступний запис у джерело даних: NEXTIF { СЕРГЕФІКАЦІЯValue1 } <= { =IF(-2.45 >= 6*{СЕРГЕФІКАЦІЯ Value2 }, 2, -.45) }

Формат перемикачі

Поле в документі може мати форматування перемикачів, які вказують на те, як буде відформатовано значення. Aspose.Words підтримує наступні перемикачі формату:

  • \\_ - форматування дати та часу
  • \# - форматування номера
  • \* Капи
  • \* ПершийКап
  • \* Нижній
  • \\* Верхній
  • \* ХАРФОРМАТ – результат формату згідно першого символу поля
  • \* MERGEFORMAT - результат форматування за даними форматування старого результату

Date Форматування номерів в полях

Коли Aspose.Words розраховує результат поля, його часто потрібно ввести рядок в число або дату значення, а також форматувати його назад до рядка. За замовчуванням Aspose.Words використовує поточну культуру ниток для виконання парсингу та форматування при розрахунку значень поля при оновленні поля та mail mergeй Також існують варіанти, передбачені у вигляді FieldOptions клас, який дозволяє додатково контролювати, яку культуру використовується при оновленні поля.

  • за замовчуванням FieldUpdateCultureSource Зручності в готелі CurrentThread які формати полів за допомогою поточної культури ниток
  • дана властивість може бути встановлена FieldCode так мовний набір з польового коду поля використовується для форматування замість

Форматування за культурою сучасної нитки

Для управління культурою, що використовується під час розрахунку поля, просто встановлюється Thread.CurrentThread.CurrentCulture майно на культуру вибору перед вилученням родовищ.

Приклад коду показує, як змінити культуру, що використовується у форматуванні поля під час оновлення:

Використання поточної культури до форматних полів дозволяє легко і послідовно контролювати, як всі поля в документі форматуються під час оновлення поля.

Форматування за допомогою культури в документі

З іншого боку, Microsoft Word Формати кожного окремого поля на основі мови тексту, знайденого в полі (зокрема, проходжень з поля). Іноді під час оновлення поля це може бути бажана поведінка, наприклад, якщо у вас є глобалізовані документи, що містять контент, що складається з багатьох різних мов і хотіли б кожен полів, щоб честь локалізації, що використовується з тексту. Aspose.Words також підтримує цей функціонал.

Про нас Document Клас надає FieldOptions майно, яке містить члени, які можуть бути використані для контролю того, як поля оновлюються в документі.

Приклад коду показує, як визначити, де культура використовується для форматування дати під час оновлення поля та mail merge Вибирається з: