Skip to content

Getting Started ru

Hammad Maqbool edited this page Oct 29, 2026 · 1 revision

English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt

Начало работы с docxi: первый документ Word на Ruby

Это руководство проведёт вас от пустой папки до отформатированного файла .docx. Предполагается, что вы знаете основы Ruby. Rails и Microsoft Word не нужны.

1. Установите гем

gem install docxi

Если в проекте есть Gemfile, вместо этого добавьте gem "docxi", "~> 0.1" и выполните bundle install. Подробности — на странице Установка.

2. Создайте документ

Сохраните этот код в файл hello.rb:

require "docxi"

word = Docxi::Document.new
document = word.document

document.p(align: "center") do |p|
  p.text "Hello, Word", size: 24, bold: true
end

File.binwrite("hello.docx", word.render.string)

Выполните ruby hello.rb (или bundle exec ruby hello.rb в проекте с Bundler) и откройте hello.docx.

3. Что делает каждая строка

  • Docxi::Document.new создаёт пустой документ с полями страницы по умолчанию.
  • word.document — это тело документа. Всё, что вы добавляете, проходит через него.
  • document.p добавляет абзац. Параметры, переданные в p, например align:, применяются к абзацу и к тексту внутри него.
  • p.text добавляет фрагмент текста (run). size: задаётся в пунктах.
  • word.render собирает пакет .docx и возвращает StringIO. Его .string содержит байты файла.

4. Добавьте список и таблицу

require "docxi"

word = Docxi::Document.new
document = word.document

document.p { |p| p.text "Quarterly summary", size: 16, bold: true }

document.p do |p|
  p.text "Revenue grew ", space: true
  p.text "12%", bold: true, color: "007A33"
  p.text " compared with last quarter.", space: true
end

document.p(ul: true) { |p| p.text "New customers: 48" }
document.p(ul: true) { |p| p.text "Customers lost: 3" }

document.table(columns_width: [200, 100]) do |table|
  table.tr(fill: "D9D9D9", bold: true) do |tr|
    tr.tc { |tc| tc.text "Region" }
    tr.tc { |tc| tc.text "Sales" }
  end
  table.tr do |tr|
    tr.tc { |tc| tc.text "North" }
    tr.tc { |tc| tc.text "$41,000", align: "right" }
  end
end

File.binwrite("summary.docx", word.render.string)

Обратите внимание на две вещи:

  • space: true сохраняет пробел в начале или в конце фрагмента. Без этого параметра Word удаляет пробел, и слова сливаются.
  • Параметры tr применяются к каждой ячейке строки, поэтому вся строка заголовка получает заливку и полужирное начертание.

5. Что дальше


← Главная вики · README

Clone this wiki locally