2014-10-13 2 views
0

Я нахожусь в процессе создания панели. В основном, я извлекаю выбранную информацию из базы данных, которую я тогда хочу отобразить в шаблоне слова. Я создал шаблон с таблицей (2 строки, 3 столбца). В каждой ячейке я помещаю закладку. Затем, используя R-отчеты ReporteR, я помещаю определенную информацию из R в ячейку внутри шаблона на основе закладки.R: Вставить таблицу в таблицу шаблонов с помощью ReporteRs

ВОПРОС: Я не могу вставить таблицы в ячейку шаблона.

Пробовал: Я думал, что это может быть из-за размера таблицы (поскольку я испытал такой размер, когда вставил цифры), но это не так.

Ниже приведен пример ошибки. Для этого вам нужно создать документ Word со столом с закладкой в ​​одной из ячеек, называемой «test».

doc = docx(title = "Dashboard",template="H:\\test.docx") 
myt <-FlexTable(cars[c(1:10),]) 
doc <-addFlexTable(doc,myt,bookmark="test") 
writeDoc(doc, "H:\\testresult.docx") 

Если затем создать закладку вне таблицы и присвоить таблицу на новую закладку, кажется, работает.

Кто-нибудь знает, как вставить таблицу (кадр данных в виде таблицы) в любую ячейку моего шаблона?

ответ

2

Если используется закладка аргумента, содержимое (графики, абзацы или изображения) заменит весь абзац, содержащий закладку.

Поведение различно для таблиц: таблицы добавляются после абзаца, содержащего закладку. Обходной путь заключается в добавлении абзаца после закладки в ячейке шаблона. Затем используйте deleteBookmark, чтобы удалить абзац, содержащий закладку.

doc <- docx(title = "Dashboard",template="H:\\test.docx") 
myt <- FlexTable(cars[c(1:10),]) 

# make sure there is one new paragraph after the paragraph that contains 'test' 
# add the FlexTable just after the paragraph containing bookmark 'test' 
doc <- addFlexTable(doc,myt,bookmark="test") 
# then delete the paragraph containing bookmark 'test' 
deleteBookmark(doc, bookmark= "test") 

writeDoc(doc, "H:\\testresult.docx") 

Вы можете использовать разделы с колоннами вместо (и в конце концов колонки перерывов):

doc = docx() 
doc = addSection(doc, landscape = TRUE, ncol = 2) 
doc = addPlot(doc = doc, fun = function() { 
    barplot(1:8, col = 1:8) 
    }, width = 3, height = 3, pointsize = 5) 

doc = addColumnBreak(doc) 
doc = addFlexTable(doc, FlexTable(head(iris))) 
+0

Спасибо! Работайте отлично! – Luc

+0

Быстрый вопрос ... Можно ли отрегулировать высоту строки в таблице (docx)? Кажется, это возможно для pptx, но я не могу найти его для docx. – Luc

+0

Вы можете настроить ширину столбца, но не высоту строки. –

Смежные вопросы