Rmd中的htmlTable - 转换为Word docx

时间:2017-03-09 16:27:29

标签: ms-word html-table r-markdown

我有以下Rmd文件,它生成一个html文件,然后我将其复制粘贴到docx文件中(对于协作者)。以下是我想知道如何处理表格的内容,但我无法在小插图中找到答案here

一个。我想知道如何删除在Cgroup 1和Cgroup 2之间插入Word的空白列。

B中。我想知道如何使用行名称(“第1行”,...)

设置列的宽度

℃。如何更改字体和字体大小?我尝试跟随this,但输出不起作用:word_document with htmlTable()

d。为了简化到Word的转换,有没有办法指定分页符?横向?

非常感谢你!

---
title: "Example"
output: 
  Gmisc::docx_document:
    fig_caption: TRUE
    force_captions: TRUE
---

Results
=======

```{r, echo = FALSE}
library(htmlTable)
library(Gmisc)
library(knitr)
mx <-
  matrix(ncol=6, nrow=8)
rownames(mx) <- paste(c("1st", "2nd",
                        "3rd",
                        paste0(4:8, "th")),
                      "row")
colnames(mx) <- paste(c("1st", "2nd",
                        "3rd", 
                        paste0(4:6, "th")),
                      "hdr")

for (nr in 1:nrow(mx)){
  for (nc in 1:ncol(mx)){
    mx[nr, nc] <-
      paste0(nr, ":", nc)
  }
}

htmlTable(mx,
          cgroup = c("Cgroup 1", "Cgroup 2"),
          n.cgroup = c(2,4))

```

1 个答案:

答案 0 :(得分:0)

行名称的样式似乎已关闭,现在已在版本1.10.1中修复,您可以使用devtools包下载:devtools::install_github("gforge/htmlTable", ref="develop")

关于样式,该功能几乎允许您可以成像的任何CSS-style。不幸的是,它需要复制粘贴到Word中,并且此功能并未成为Microsoft的最高优先级。您可以使用css.cell轻松调整您的示例以适应所需的更改:

library(htmlTable)
library(knitr)
mx <-
  matrix(ncol=6, nrow=8)
rownames(mx) <- paste(c("1st", "2nd",
                        "3rd",
                        paste0(4:8, "th")),
                      "row")
colnames(mx) <- paste(c("1st", "2nd",
                        "3rd", 
                        paste0(4:6, "th")),
                      "hdr")

for (nr in 1:nrow(mx)){
  for (nc in 1:ncol(mx)){
    mx[nr, nc] <-
      paste0(nr, ":", nc)
  }
}

css.cell = rep("font-size: 1.5em;", times = ncol(mx) + 1)
css.cell[1] = "width: 4cm; font-size: 2em;"
htmlTable(mx,
          css.cell=css.cell,
          css.cgroup = "color: red",
          css.table = "color: blue",
          cgroup = c("Cgroup 1", "Cgroup 2"),
          n.cgroup = c(2,4))

无法删除cgroups生成的空列。这是表格看起来不错并且是有意识的设计选择所必需的。

关于分页符,我怀疑是否有任何优雅的方式来做到这一点。替代方案可能是ReporteRs包。我自己没有使用它,但它与Word更紧密地结合在一起,可能是一个解决方案。