我需要从模板中读取以下类并创建新的docx文件:-
需要“docx”
class DocX
def generate_doc
# Create a Docx::Document object for our existing docx file
doc = Docx::Document.open("#{Rails.root}/app/lib/docx_templates/sample.docx")
doc.bookmarks['cypsldshvlxb'].insert_text_after("Hello, world")
# Iterate over each table
doc.tables.each do |table|
last_row = table.rows.last
# Copy last row and insert a new one before last row
new_row = last_row.copy
new_row.insert_before(last_row)
# Substitute text in each cell of this new row
new_row.cells.each do |cell|
cell.paragraphs.each do |paragraph|
paragraph.each_text_run do |text|
text.substitute('_placeholder_', 'replacement value')
end
end
end
end
doc.save("#{Rails.root}/app/lib/docx_templates/sample_edited.docx")
end
结束
以上大部分内容都是从这个gem的自述文档中提取的。
新文件保存时没有任何错误,但插入文本“hello,world”的代码无效。表中的文本替换以及新行插入都可以正常工作。
我只使用下面的名称获得书签名称,因此我知道它存在,但可能我使用了错误的名称:-
doc.bookmarks.each_pair { |name, object| puts name }
有人知道我可能做错了什么吗?
暂无答案!
目前还没有任何答案,快来回答吧!