How to Use the write.xlsx Function in R

Spread the love

One common task when working with R is exporting data into different formats for further manipulation, sharing, or presentation. The write.xlsx function from the openxlsx package in R provides an easy and efficient way to export data into Excel files (.xlsx). This comprehensive guide will explain how to make the most of this function.


Microsoft Excel is one of the most widely used software applications for data management and analysis. It allows users to store, manipulate, and analyze data in a tabular format. The .xlsx format, an Excel-specific file format, is widely recognized and used in business, academic, and many other settings.

R’s write.xlsx function enables users to export datasets from R to Excel, preserving the structure of the data and allowing further manipulation or analysis in Excel.

Installing and Loading the openxlsx Package

To use write.xlsx, you first need to install and load the openxlsx package. The openxlsx package is not part of R’s base packages, so you’ll need to install it first if you haven’t already done so. You can install it using the install.packages function:


Once the package is installed, you can load it using the library function:


Basic Usage

The simplest way to use write.xlsx is to provide the dataset to be written and the name of the output file as arguments:

data <- data.frame(Name = c("John", "Jane", "Mary"), Score = c(90, 85, 97))
write.xlsx(data, "Scores.xlsx")

In this example, a data frame named “data” is created with two columns, “Name” and “Score”. The write.xlsx function is then used to write this data frame to an Excel file named “Scores.xlsx”.


The write.xlsx function has several optional parameters that allow you to customize the output Excel file:

  • file: The name of the output Excel file. This should be a character string ending in “.xlsx”.
  • x: The object to be written to the Excel workbook.
  • sheetName: The name of the worksheet where the data will be written. If this is not provided, the function will use “Sheet1” as the default name.
  • col.names: A logical value indicating whether the column names of the data should be included in the output file. The default is TRUE.
  • row.names: A logical value indicating whether the row names of the data should be included in the output file. The default is FALSE.
  • append: A logical value indicating whether the data should be appended to an existing file. If TRUE and the file already exists, the function will add a new worksheet with the provided data. If the file does not exist, a new file will be created. The default is FALSE.

Here’s an example using some of these parameters:

data <- data.frame(Name = c("John", "Jane", "Mary"), Score = c(90, 85, 97))
write.xlsx(data, "Scores.xlsx", sheetName = "Test Scores", col.names = TRUE, row.names = FALSE, append = FALSE)

In this example, write.xlsx creates an Excel file named “Scores.xlsx”, with a worksheet named “Test Scores”. The data is written to this worksheet, with the column names included but without the row names.

Writing Multiple Sheets

The write.xlsx function can also be used to write multiple data frames to different worksheets in the same Excel file. This can be done by passing a named list of data frames to the function:

data1 <- data.frame(Name = c("John", "Jane", "Mary"), Score = c(90, 85, 97))
data2 <- data.frame(Name = c("Sam", "Sally", "Steven"), Score = c(92, 88, 93))
write.xlsx(list("Test Scores" = data1, "Homework Scores" = data2), "Scores.xlsx")

In this example, two data frames (“data1” and “data2”) are written to two different worksheets (“Test Scores” and “Homework Scores”) in the “Scores.xlsx” file.


The write.xlsx function in R provides a powerful tool for exporting data from R to Excel, a format that is widely used and recognized. This function provides a high degree of flexibility, allowing you to control the output file’s structure and appearance. Remember, though, that while write.xlsx is a great tool for writing Excel files, there are other packages and functions in R, such as writexl and xlsx, which also provide methods to write Excel files. Each package has its strengths and weaknesses, and the best one to use depends on your specific needs. Always be sure to explore different options and choose the one that best suits your requirements.

Posted in RTagged

Leave a Reply