我试图使一些表中的某些列左对齐。在大多数情况下,这没有问题,但在其他情况下,使用以下选项选择的列:
ft <-align(ft, j=1:2, align = "left", part = "body")
ft <-align(ft, j=4:6, align = "left", part = "body")
在Rstudio查看器中看起来正确。我使用一个循环制作了39个表格,并想使用Officer
将它们添加到Word文档中但是,当使用以下命令打印到Word文档时
doc <- read_docx() %>%
body_add_flextable(tab0)
body_add_break(doc, pos="after")
for (i in 1:38) {
body_add_flextable(doc,get(paste0("tab", i)), align = "left")
body_add_break(doc, pos="after")
}
print(doc,target=documentname)
它使列居中对齐(仅更改左对齐的列)。当我单击文本时,它说它们左对齐,但是随后我居中并重新左对齐,从而解决了该问题。我只注意到哪个字符变量的问题
我尝试用
trimws()
,然后我就没有运气了。
我尝试了其他对齐方式,但是问题似乎只出现在左侧对齐方式上。
我不认为我的代码是错误的,因为它适用于我的其他表。因此,我认为尝试制作可复制的代码将浪费时间。
因此,我假设文本本身是引起问题的原因?有人知道字符变量本身可能出什么问题吗?还是其他想法?
答案 0 :(得分:0)
解决了...
在我的灵活操作中,添加了这个领先的空白。
因此,修剪空白之前什么也没做。必须在命名我的桌子之前修剪一下(循环内)。这是我用来纠正它的循环。
for (j in 1: length(ft[["body"]][["content"]][["content"]][["data"]])){
ft[["body"]][["content"]][["content"]][["data"]][[j]][["txt"]] <- trimws(ft[["body"]][["content"]][["content"]][["data"]][[j]][["txt"]])
}