Make corporate reporting with minimum hassle
The officer package lets R users manipulate Word (.docx) and PowerPoint (*.pptx) documents. In short, one can add images, tables and text into documents from R. An initial document can be provided; contents, styles and properties of the original document will then be available. It also supports the writing of ‘RTF’ documents and basic manipulation of Excel (‘.xlsx’) workbooks.
Ressources
The help pages are in a bookdown located at:
https://ardata-fr.github.io/officeverse/
Manuals are available at:
Word documents
The read_docx() function will read an initial Word document (an empty one by default) and lets you modify its content later.
The package provides functions to add R outputs into a Word document:
- images: produce your plot in png or emf files and add them into the document, as a whole paragraph or inside a paragraph.
- tables: add data.frames as tables, format is defined by the associated Word table style.
- text: add text as paragraphs or inside an existing paragraph, format is defined by the associated Word paragraph and text styles.
- field codes: add Word field codes inside paragraphs. Field codes is an old feature of MS Word to create calculated elements such as tables of contents, automatic numbering and hyperlinks.
File generation is performed with the print function.
import Word document in a data.frame
The function docx_summary() reads and imports content of a Word document into a data.frame. The function handles paragraphs, tables and section breaks. The function docx_comments() reads comments of a Word document and organise the results into a data.frame.
PowerPoint documents
The function read_pptx() will read an initial PowerPoint document (an empty one by default) and let you modify its content later.
The package provides functions to add R outputs into existing or new PowerPoint slides:
- images: produce your plot in png or emf files and add them in a slide.
- tables: add data.frames as tables, format is defined by the associated PowerPoint table style.
- text: add text as paragraphs or inside an existing paragraph, format is defined in the corresponding layout of the slide.
In a PowerPoint document, one can set a slide as selected and reach a particular shape (and remove it or add text).
File generation is performed with the print() function.
import PowerPoint document in a data.frame
The pptx_summary() function reads and imports content of a PowerPoint document into a data.frame. The function handles paragraphs, tables and images.
Extensions
Tables and package flextable
The package flextable brings a full API to produce nice tables and use them with packages officer and rmarkdown.
Vector graphics with package rvg
The package rvg brings an API to produce nice vector graphics that can be embedded in PowerPoint documents or Excel workbooks with officer.
Native office charts with package mschart
The package mschart combined with officer can produce native office charts in PowerPoint and Word documents.
Advance Word documents with R Markdown with package officedown
The package officedown facilitates the formatting of Microsoft Word documents produced by R Markdown documents.
Installation
You can get the development version from GitHub:
devtools::install_github("davidgohel/officer")Or the latest version on CRAN:
install.packages("officer")Getting help
If you have questions about how to use the package, visit Stack Overflow’s officer tag and post your question there. I usually read them and answer when possible.
Contributing to the package
Please read CONTRIBUTING.md before opening an issue or a discussion. In short:
- bugs are reported through GitHub issues, with a reprex and the output of
sessionInfo(); - feature requests go to Discussions;
- for usage questions, read the officeverse book and the documentation, then use Stack Overflow, with the
officertag, or Discussions; - pull requests are disabled.
