The xlsx package gives programatic control of Excel files using R. A high level API allows the user to read a sheet of an xlsx document into a data.frame and write a data.frame to a file. Lower level functionality permits the direct manipulation of sheets, rows and cells. For example, the user has control to set colors, fonts, data formats, add borders, hide/unhide sheets, add/remove rows, add/remove sheets, etc.

Details

Behind the scenes, the xlsx package uses a java library from the Apache project, https://poi.apache.org/index.html. This Apache project provides a Java API to Microsoft Documents (Excel, Word, PowerPoint, Outlook, Visio, etc.) By using the rJava package that links and Java, we can piggyback on the excellent work already done by the folks at the Apache project and provide this functionality in R. The xlsx package uses only a subset of the Apache POI project, namely the one dealing with Excel files. All the necessary jar files are kept in package xlsxjars that is imported by package xlsx.

A collection of tests that can be used as examples are located in folder /tests/. They are a good source of examples of how to use the package.

Please see https://github.com/colearendt/xlsx/ for a Wiki and the development version. To report a bug, use the Issues page at https://github.com/colearendt/xlsx/issues.

Package:xlsx
Type:Package
Version:0.6.0
Date:2015-11-29
License:GPL-3

References

Apache POI project for Microsoft Excel format: https://poi.apache.org/components/spreadsheet/index.html.

The Java Doc detailing the classes: https://poi.apache.org/apidocs/index.html. This can be useful if you are looking for something that is not exposed in R as it may be available on the Java side. Inspecting the source code for some the the functions in this package can show you how to do it (even if you are Java shy.)

See also

Workbook for ways to work with Workbook objects.

Examples


if (FALSE) {

library(xlsx)

# example of reading xlsx sheets
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
res <- read.xlsx(file, 2)  # read the second sheet

# example of writing xlsx sheets
file <- paste(tempfile(), "xlsx", sep=".")
write.xlsx(USArrests, file=file)

}