R语言officer、flextable包生成word报告

officer是一个生成(处理)Word(docx)和PowerPoint(pptx)的R包。与ReportRs包相比速度要更快,依赖包也更少(ReportRs已经停止维护),常结合flextable包(生成表格),mschart包(生成office图表),rvg(结合ggplot2生成动态图表)。

word文档主要函数分类

1.添加内容作为段落:图像,表格,文字。使用body_add_*功能

body_add_par 添加段落
body_add_img 添加图片
body_add_table 表格
body_add_break 换行
body_add_toc 目录
body_add_gg ggplot图片
2.在现有段落内添加文字或图像。内容被添加到光标所在的段落中,使用slip_in_*功能:
slip_in_img()
slip_in_seqfield()

slip_in_text()
3.移动光标
cursor_begin()
cursor_end()
cursor_reach()
cursor_backward()
cursor_forward()

cursor_bookmark()
4.删除内容
body_remove()
5.搜索和替换
body_replace_text_at_bkm()
body_replace_all_text()

示例

library(officer)
library(magrittr) # Package `magrittr` makes officer usage easier.
library(ggplot2)

my_doc <- read_docx()  #初始化一个docx , 里面不填路径使用默认模板
styles_info(my_doc)  #显示信息

gg <- ggplot(data = iris, aes(Sepal.Length, Petal.Length)) + 
    geom_point()

  my_doc %>%   #可以使用magrittr方式一步步添加
    body_add_par(value = "Table of content", style = "heading 1") %>% 
    body_add_toc(level = 2) %>% 
    body_add_break() %>% 

    body_add_par(value = "dataset iris", style = "heading 2") %>% 
    body_add_table(value = head(iris), style = "table_template" ) %>% 

    body_add_par(value = "plot examples", style = "heading 1") %>% 
    body_add_gg(value = gg, style = "centered" ) %>% 

    print(target = "body_add_demo.docx")

你可能感兴趣的:(R语言,officer,flextable,word,R)