Бібліотека Ruby з відкритим кодом для обробки документів Word
Безкоштовний Ruby API, який дозволяє розробникам програмного забезпечення генерувати та редагувати файли Microsoft Word, керувати колонтитулами, вставляти та редагувати таблиці та багато іншого.
Docx — це API JavaScript з відкритим вихідним кодом, який надає можливість легко створювати файли Word Docx і керувати ними у власній програмі JavaScript. Бібліотека може безперебійно працювати як для Node, так і для браузера. Бібліотека дуже стабільна і проста у використанні. За допомогою лише кількох рядків коду розробники можуть створювати документи Word і керувати ними без будь-яких зовнішніх залежностей.
DocX API містить підтримку кількох важливих функцій, пов’язаних із роботою з документами Word, наприклад створення документів Word, змінення файлів DOCX, додавання абзацу до файлу Word, додавання та керування верхніми та нижніми колонтитулами, вставлення та редагування таблиць, підтримка маркерів і нумерації , створення вмісту, встановлення полів документа, встановлення розміру сторінки, вирівнювання тексту, керування шрифтами та розмірами шрифтів, створення розділів документа та багато іншого.
Початок роботи з Docx
Рекомендований спосіб встановлення — використання npm. Будь ласка, використовуйте наступну команду для Gemfile вашої програми
Встановіть Документи через npm
gem install docx
Записувати в існуючі файли DOCX через Ruby
Бібліотека Ruby Docx дозволяє розробникам програмного забезпечення відкривати існуючі файли DOCX і оновлювати вміст файлу у своїх власних програмах Ruby. Щоб відкрити файл, потрібно вказати правильний шлях до існуючого файлу DOCX. Отримавши доступ до документів, ви можете легко додати один рядок тексту або абзаци, замінити текст, видалити небажаний вміст, змінити наявний текст тощо. Після того, як все правильно завершено, ви можете зберегти документ за вказаним шляхом.
Як написати для збереження DOCX файлів через Ruby API
require 'docx'
doc = Docx::Document.open('example.docx')
doc.bookmarks['example_bookmark'].insert_text_after("Hello world.")
# Insert multiple lines of text at our bookmark
doc.bookmarks['example_bookmark_2'].insert_multiple_lines_after(['Hello', 'World', 'foo'])
# Remove paragraphs
doc.paragraphs.each do |p|
p.remove! if p.to_s =~ /TODO/
end
# Substitute text, preserving formatting
doc.paragraphs.each do |p|
p.each_text_run do |tr|
tr.substitute('_placeholder_', 'replacement value')
end
end
# Save document to specified path
doc.save('example-edited.docx')
Читання файлу Docx через бібліотеку Ruby
Бібліотека Ruby Docx з відкритим вихідним кодом надає функціональність для доступу та читання файлів MS Word DOCX за допомогою кількох рядків коду Ruby. Розробники можуть легко створити об’єкт документа для нашого наявного файлу Docx і можуть отримати та відобразити вміст файлу за допомогою лише кількох рядків коду Ruby. Ви легко відобразите певний абзац або закладку. Ви також можете відображати файли з буфера.
Open & Read Existing Docx Файл через Ruby API
require 'docx'
# Create a Docx::Document object for our existing docx file
doc = Docx::Document.open('example.docx')
# Retrieve and display paragraphs
doc.paragraphs.each do |p|
puts p
end
# Retrieve and display bookmarks, returned as hash with bookmark names as keys and objects as values
doc.bookmarks.each_pair do |bookmark_name, bookmark_object|
puts bookmark_name
end
Читання таблиць у файлах Word DOCX
Бібліотека Ruby DOCX з відкритим вихідним кодом надає розробникам програмного забезпечення можливість доступу та читання таблиць у файлі DOCX за допомогою команд Ruby. Ви можете легко отримати доступ до рядків, стовпців і комірок таблиць за допомогою лише кількох рядків коду. Бібліотека підтримує ітерацію по таблицях, ітерацію на основі рядків і ітерацій на основі стовпців.
Як читати таблиці в документах Word через Ruby API
require 'docx'
# Create a Docx::Document object for our existing docx file
doc = Docx::Document.open('tables.docx')
first_table = doc.tables[0]
puts first_table.row_count
puts first_table.column_count
puts first_table.rows[0].cells[0].text
puts first_table.columns[0].cells[0].text
# Iterate through tables
doc.tables.each do |table|
table.rows.each do |row| # Row-based iteration
row.cells.each do |cell|
puts cell.text
end
end
table.columns.each do |column| # Column-based iteration
column.cells.each do |cell|
puts cell.text
end
end
end