Repository navigation
Integrations vi
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
docxi không có plugin và không có tích hợp dựng sẵn. Đây là mã Ruby thuần trả về một StringIO, nên hoạt động ở bất cứ đâu bạn có thể gửi hoặc lưu một chuỗi. Trang này trình bày những cách kết nối thường dùng. Mẫu controller của Rails là mẫu được nêu trong README, và bộ kiểm thử chạy với Rails từ 5.2 đến 8.1 được nạp.
class ReportsController < ApplicationController
def show
word = Docxi::Document.new
word.document.p { |p| p.text "Report for #{Date.today}" }
send_data word.render.string,
filename: "report.docx",
type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
end
endsend_data đặt Content-Disposition: attachment, nên trình duyệt sẽ tải tệp xuống. Khi dùng Bundler, docxi được nạp tự động từ Gemfile.
Tài liệu lớn, hoặc tài liệu được dựng từ các truy vấn chậm, nên được tạo trong một tác vụ (job):
class MonthlyReportJob < ApplicationJob
queue_as :default
def perform(path)
word = Docxi::Document.new
word.document.p { |p| p.text "Monthly report", bold: true, size: 16 }
File.binwrite(path, word.render.string)
end
endTác vụ ghi tệp vào đường dẫn bạn chọn. Tệp được chuyển đi đâu tiếp theo, chẳng hạn vào kho lưu trữ hay gửi qua email, là do ứng dụng của bạn quyết định.
Bất kỳ ứng dụng Rack nào cũng có thể trả về các byte trực tiếp:
require "docxi"
class ReportApp
def call(env)
word = Docxi::Document.new
word.document.p { |p| p.text "Generated by a Rack app" }
headers = {
"content-type" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"content-disposition" => 'attachment; filename="report.docx"'
}
[200, headers, [word.render.string]]
end
endGắn ứng dụng bằng run ReportApp.new trong config.ru. Cách làm tương tự áp dụng được cho Sinatra, Hanami hoặc bất kỳ framework nào có thể gửi một chuỗi làm phần thân phản hồi.
docxi không cần máy chủ cũng không cần phần mềm văn phòng, nên một script Ruby thông thường là đủ:
require "docxi"
word = Docxi::Document.new
word.document.p { |p| p.text "Nightly export" }
File.binwrite(ARGV.fetch(0, "export.docx"), word.render.string)docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages