Repository navigation
Integrations tr
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
docxi'nin eklentileri ve yerleşik entegrasyonları yoktur. Bir StringIO döndüren düz Ruby kodudur; bu yüzden bir dize gönderebildiğiniz veya saklayabildiğiniz her yerde çalışır. Bu sayfa, onu bağlamanın yaygın yollarını gösterir. Rails controller kalıbı README'de gösterilenle aynıdır ve test paketi Rails 5.2 ile 8.1 arası yüklüyken çalışır.
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, Content-Disposition: attachment başlığını ayarlar; böylece tarayıcı dosyayı indirir. Bundler kullanıldığında docxi, Gemfile üzerinden otomatik olarak yüklenir.
Büyük belgeleri veya yavaş sorgulardan oluşturulan belgeleri bir işte (job) oluşturmak daha iyidir:
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
endİş, seçtiğiniz bir yola yazar. Dosyanın bundan sonra nereye gideceğine, örneğin bir depolama alanına veya e-postaya, uygulamanız karar verir.
Herhangi bir Rack uygulaması baytları doğrudan döndürebilir:
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
endBunu config.ru içinde run ReportApp.new ile bağlayın. Aynı yaklaşım Sinatra, Hanami veya yanıt gövdesi olarak bir dize gönderebilen herhangi bir çatıda da çalışır.
docxi'nin sunucuya da ofis yazılımına da ihtiyacı yoktur; bu yüzden sıradan bir Ruby betiği yeterlidir:
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