officer是一个生成(处理)Word(docx)和PowerPoint(pptx)的R包。与ReportRs包相比速度要更快,依赖包也更少(好像也是这个作者写的,但是ReportRs要依赖于rjava,不便维护),常结合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")
相关网站
- officer 生成 docx pptx
- https://davidgohel.github.io/officer/
- https://github.com/davidgohel/officer
- flextable 处理表格
- https://davidgohel.github.io/flextable/
- https://github.com/davidgohel/flextable