Functions to manipulate cells.
createCell(row, colIndex = 1:5)
getCells(row, colIndex = NULL, simplify = TRUE)
setCellValue(cell, value, richTextString = FALSE, showNA = TRUE)
getCellValue(cell, keepFormulas = FALSE, encoding = "unknown")
a list of row objects. See Row
.
a numeric vector specifying the index of columns.
a logical value. If TRUE
, the result will be
unlisted.
a Cell
object.
an R variable of length one.
a logical value indicating if the value should be inserted into the Excel cell as rich text.
a logical value. If TRUE
the cell will contain the
"#N/A" value, if FALSE
they will be skipped. The default value was
chosen to remain compatible with previous versions of the function.
a logical value. If TRUE
the formulas will be
returned as characters instead of being explicitly evaluated.
A character value to set the encoding, for example "UTF-8".
createCell
creates a matrix of lists, each element of the list being
a java object reference to an object of type Cell representing an empty
cell. The dimnames of this matrix are taken from the names of the rows and
the colIndex
variable.
getCells
returns a list of java object references for all the cells
in the row if colIndex
is NULL
. If you want to extract only a
specific columns, set colIndex
to the column indices you are
interested.
getCellValue
returns the value in the cell as an R object. Type
conversions are done behind the scene. This function is not vectorized.
setCellValue
writes the content of an R variable into the cell.
Date
and POSIXct
objects are passed in as numerical values.
To format them as dates in Excel see CellStyle
.
These functions are not vectorized and should be used only for small
spreadsheets. Use CellBlock
functionality to efficiently read/write
parts of a spreadsheet.
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheets <- getSheets(wb)
sheet <- sheets[['mixedTypes']] # get second sheet
rows <- getRows(sheet) # get all the rows
cells <- getCells(rows) # returns all non empty cells
values <- lapply(cells, getCellValue) # extract the values
# write the months of the year in the first column of the spreadsheet
ind <- paste(2:13, ".2", sep="")
mapply(setCellValue, cells[ind], month.name)
#> $`2.2`
#> NULL
#>
#> $`3.2`
#> NULL
#>
#> $`4.2`
#> NULL
#>
#> $`5.2`
#> NULL
#>
#> $`6.2`
#> NULL
#>
#> $`7.2`
#> NULL
#>
#> $`8.2`
#> NULL
#>
#> $`9.2`
#> NULL
#>
#> $`10.2`
#> NULL
#>
#> $`11.2`
#> NULL
#>
#> $`12.2`
#> NULL
#>
#> $`13.2`
#> NULL
#>
####################################################################
# make a new workbook with one sheet and 5x5 cells
wb <- createWorkbook()
sheet <- createSheet(wb, "Sheet1")
rows <- createRow(sheet, rowIndex=1:5)
cells <- createCell(rows, colIndex=1:5)
# populate the first column with Dates
days <- seq(as.Date("2013-01-01"), by="1 day", length.out=5)
mapply(setCellValue, cells[,1], days)
#> $`1`
#> NULL
#>
#> $`2`
#> NULL
#>
#> $`3`
#> NULL
#>
#> $`4`
#> NULL
#>
#> $`5`
#> NULL
#>