Package xlsx proporciona un control programatico de los archivos de Excel utilizando R. Una API de alto nivel permite al usuario leer una hoja de un documento xlsx en un archivo data.frame y escribir un archivo data.frame en un archivo. La funcionalidad de nivel inferior permite la manipulacion directa de hojas, filas y celdas. Por ejemplo, el usuario tiene control para establecer colores, fuentes, formatos de datos, a??adir bordes, ocultar / mostrar hojas, a??adir / quitar filas, a??adir / quitar hojas, etc.
Package xlsx utiliza una biblioteca java del proyecto Apache, http://poi.apache.org/index.html. Este proyecto Apache proporciona una API de Java a documentos de Microsoft (Excel, Word, PowerPoint, Outlook, Visio, etc.). Utilizando el paquete rJava que vincula R y Java, podemos aprovechar el excelente trabajo ya realizado por la gente en el proyecto Apache y proporcionar esta funcionalidad en R. El paquete xlsx utiliza solo un subconjunto del proyecto Apache POI, Tratando con archivos de Excel. Todos los archivos jar necesarios se guardan en el paquete xlsxjars importado por el paquete xlsx.
Una coleccionn de pruebas que se pueden utilizar como ejemplos se encuentran en la carpeta /tests/. Son una buena fuente de ejemplos de como usar Package.
Consulte http://code.google.com/p/rexcel/ para obtener un Wiki y la version de desarrollo. Para informar de un error, utilice la pagina de problemas en https://code.google.com/p/rexcel/issues/list. Las preguntas deben hacerse en la lista de correo dedicada en http://groups.google.com/group/R-package-xlsx.
Apache POI proyecto para el formato de Microsoft Excel http://poi.apache.org/spreadsheet/index.html.
El documento de Java que detalla las clases: http://poi.apache.org/apidocs/index.html. Esto puede ser util si esta buscando algo que no esta expuesto en R, ya que puede estar disponible en el lado de Java. Inspeccionar el c??digo fuente de algunas de las funciones R de este paquete puede mostrarte como hacerlo.
Libro de trabajo para saber como trabajar con objetos de libro.
Como crear estilos de celda usando :
##S3 method for class CellStyle
cs1 + object
Donde
| Elemento | Concepto |
|---|---|
| Cs1 | Es un objeto CellStyle |
| Object | Es un objeto para agregar.El objeto puede ser otro CellStyle, un DataFormat, alineacion, un borde, un relleno, una fuente o un objeto CellProtection |
Ejemplo
Not run:
cs <- CellStyle(wb) +
Font(wb, heightInPoints=20, isBold=TRUE, isItalic=TRUE,
name="Courier New", color="orange") +
Fill(backgroundColor="lavender", foregroundColor="lavender",
pattern="SOLID_FOREGROUND") +
Alignment(h="ALIGN_RIGHT")
setCellStyle(cell.1, cellStyle1)
# you need to save the workbook now if you want to see this art
## End(Not run)
Agregue un archivo de datos a una hoja, permitiendo diferentes estilos de columna. Util cuando se construye la hoja de calculo desde cero usando.
addDataFrame(x, sheet, col.names=TRUE, row.names=TRUE,
startRow=1, startColumn=1, colStyle=NULL, colnamesStyle=NULL,
rownamesStyle=NULL, showNA=FALSE, characterNA="", byrow=FALSE)
Donde
| Elemento | Concepto |
|---|---|
| x | Una hoja de datos |
| sheet | Un objeto de hoja |
| col.names | Un valor logico que indica si los nombres de columnas de x deben escribirse junto con x en el archivo |
| row.names | Un valor logico que indica si los nombres de fila de x deben escribirse junto con x en el archivo |
| startRow | Un valor numerico para la fila de inicio |
| startColumn | Un valor numerico para la columna de inicio |
| colStyle | Una lista de CellStyle. Si el nombre del elemento de lista es el numero de columna, se utilizara para establecer el estilo de la columna. Las columnas del tipo Date y POSIXct se denominan automaticamente aunque colSyle = NULL |
| colnamesStyle | Un objeto CellStyle para personalizar el encabezado de tabla! |
| rownamesStyle | Un objeto CellStyle para personalizar los nombres de fila (de row.names = TRUE) |
| showNA | Un valor booleano para controlar como se muestran NA en la hoja. Si FALSO, los valores NA seran representados como celdas en blanco |
| characterNA | Un valor de cadena para controlar como se mostrara el caracter NA en la hoja de calculo |
| byrow | Un valor logico que indica si el archivo data.frame debe a??adirse a la hoja en forma de fila |
Ejemplo
wb <- createWorkbook()
sheet <- createSheet(wb, sheetName="addDataFrame1")
data <- data.frame(mon=month.abb[1:10], day=1:10, year=2000:2009,
date=seq(as.Date("1999-01-01"), by="1 year", length.out=10),
bool=c(TRUE, FALSE), log=log(1:10),
rnorm=10000*rnorm(10),
datetime=seq(as.POSIXct("2011-11-06 00:00:00", tz="GMT"), by="1 hour",
length.out=10))
cs1 <- CellStyle(wb) + Font(wb, isItalic=TRUE) # rowcolumns
cs2 <- CellStyle(wb) + Font(wb, color="blue")
cs3 <- CellStyle(wb) + Font(wb, isBold=TRUE) + Border() # header
addDataFrame(data, sheet, startRow=3, startColumn=2, colnamesStyle=cs3,
rownamesStyle=cs1, colStyle=list( 2 =cs2, 3 =cs2))
# to change the default date format use something like this
# options(xlsx.date.format="dd MMM, yyyy")
# Don t forget to save the workbook ...
# saveWorkbook(wb, file)
Agregue un hipervinculo a una celda para que apunte a un recurso externo(AddHyperlink) usando.
addHyperlink(cell, address, linkType=c("URL", "DOCUMENT",
"EMAIL", "FILE"), hyperlinkStyle=NULL)
Donde
| Elemento | Concepto |
|---|---|
| cell | Un objeto Cell |
| address | Una cadena apuntando al recurso |
| linkType | El tipo de recurso |
| hyperlinkStyle | Un objeto CellStyle. Si NULL se crea un estilo de celda predeterminado, fuente azul subrayada |
Ejemplo
wb <- createWorkbook()
sheet1 <- createSheet(wb, "Sheet1")
rows <- createRow(sheet1, 1:10) # 10 rows
cells <- createCell(rows, colIndex=1:8) # 8 columns
cat("Add hyperlinks to a cell")
cell <- cells[[1,1]]
address <- "http://poi.apache.org/"
setCellValue(cell, "click me!")
addHyperlink(cell, address)
# Don t forget to save the workbook ...
Cree un objeto Alineacion,util cuando se trabaja con estilos de celda usando.
Alignment(horizontal=NULL, vertical=NULL, wrapText=FALSE,
rotation=0, indent=0)
is.Alignment(x)
Donde
| Elemento | Concepto |
|---|---|
| horizontal | Un valor de caracter que especifica la alineacion horizontal. Los valores validos provienen de constantes HALIGN_STYLES_ |
| vertical | Un valor de caracter que especifica la alineacion vertical. Los valores validos provienen de VALIGN_STYLES_ constante |
| wrapText | Una indicacion logica si el texto debe ser envuelto. |
| rotation | Un valor numerico que indica los grados que desea girar el texto en la celda |
| indent | Un valor numerico que indica el numero de espacios que desea pedir el texto en la celda |
| x | Alineacion de un objeto, tal como lo devuelve alineacion |
Ejemplo
# you can just use h for horizontal, since R does the matching for you
a1 <- Alignment(h="ALIGN_CENTER", rotation=90) # centered and rotated!
Cree un objeto Border, ??til cuando se trabaja con estilos de celda usando:
Border(color="black", position="BOTTOM", pen="BORDER_THIN")
is.Border(x)
Donde
| Elemento | Concepto |
|---|---|
| color | Un vector de caracteres que especifica el color de la fuente. Se puede utilizar cualquier nombre de color devuelto por colores. O, un car??cter hexadecimal, p. “# FF0000” para el rojo. Para los libros de Excel 95, s??lo est?? disponible un subconjunto de colores, consulte la constante INDEXED_COLORS_ |
| position | Un vector de caracteres que especifica la posici??n del borde. Los valores v??lidos son “FONDO(BOTTOM)”, “IZQUIERDA(LEFT)”, “PASRTE SUPERIOR (TOP)”, “DERECHA(RIGHT)” |
| pen | Un vector de caracteres que especifica el estilo de la pluma. Los valores v??lidos provienen de BORDER_STYLES_ constante |
| x | Un objeto Border, como devuelto por Border |
Ejemplo
border <- Border(color="red", position=c("TOP", "BOTTOM"),
pen=c("BORDER_THIN", "BORDER_THICK"))
Funciones para manipular las celdas usando.
createCell(row, colIndex=1:5)
getCells(row, colIndex=NULL, simplify=TRUE)
setCellValue(cell, value, richTextString=FALSE, showNA=TRUE)
getCellValue(cell, keepFormulas=FALSE, encoding="unknown")
Donde
| Elemento | Concepto |
|---|---|
| row | Una lista de objetos de fila. Ver Fila |
| colIndex | Un vector num??rico que especifica el ??ndice de columnas |
| simplify | Un valor l??gico. Si es VERDAD, el resultado no se mostrar?? en la lista. |
| value | Una variable R de longitud uno |
| richTextString | Un valor l??gico que indica si el valor debe insertarse en la celda de Excel como texto enriquecido |
| showNA | Un valor l??gico. Si es VERDAD la celda contendr?? el valor “# N / A”, si es FALSA se saltar??n. El valor predeterminado se eligi?? para seguir siendo compatible con las versiones anteriores de la funci??n |
| keepFormulas | Un valor l??gico. Si es VERDADERA las f??rmulas se devuelven como caracteres en lugar de ser evaluadas expl??citamente |
| encoding | Un valor de car??cter para establecer la codificaci??n, por ejemplo “UTF-8” |
| cell | Un objeto Cell |
Ejemplo
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)
####################################################################
# 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)
Funciones para crear y dise??ar (no leer) un bloque de celdas. Util??celo para establecer / actualizar los valores de las celdas y los estilos de celdas de una manera eficiente usando.
## Default S3 method:
CellBlock(sheet, startRow, startColumn, noRows, noColumns,
create=TRUE)
is.CellBlock( cellBlock )
CB.setColData(cellBlock, x, colIndex, rowOffset=0, showNA=TRUE,
colStyle=NULL)
CB.setRowData(cellBlock, x, rowIndex, colOffset=0, showNA=TRUE,
rowStyle=NULL)
CB.setMatrixData(cellBlock, x, startRow, startColumn,
showNA=TRUE, cellStyle=NULL)
CB.setFill( cellBlock, fill, rowIndex, colIndex)
CB.setFont( cellBlock, font, rowIndex, colIndex )
CB.setBorder( cellBlock, border, rowIndex, colIndex)
Donde
| Elemento | Concepto |
|---|---|
| sheet | Un objeto de hoja |
| startRow | Un valor num??rico para la fila de inicio |
| startColumn | Un valor num??rico para la columna de inicio |
| rowOffset | Un valor num??rico para la fila de inicio |
| colOffset | Un valor num??rico para la columna de inicio |
| showNA | Un valor l??gico. Si se establece en FALSE, los valores NA se dejar??n como celdas vac??as |
| noRows | Un valor num??rico para especificar el n??mero de filas para el bloque |
| noColumns | Un valor num??rico para especificar el n??mero de columnas para el bloque |
| create | Si se crean las c??lulas VERDADERAS si no existen, si es FALSA solo se usan las celdas existentes. Si las celdas no existen (en una hoja nueva por ejemplo), usted tiene que utilizar VERDADERO. En una hoja existente con datos, utilice VERDADERAS si desea borrar un bloque de celdas existente. Utilice FALSA si desea conservar el estilo de las celdas existentes, pero simplemente modifique el valor de la celda |
| cellBlock | Un objeto de bloque de celda devuelto por CellBlock |
| rowStyle | Un objeto CellStyle utilizado para dise??ar la fila |
| colStyle | Un objeto CellStyle utilizado para dise??ar la columna |
| cellStyle | Un objeto CellStyle |
| border | Un objeto Border, como devuelto por Border |
| fill | Un objeto Fill, como devuelto por Fill |
| font | Un objeto Fuente, como devuelto por Fuente |
| colIndex | Un vector num??rico se especifiquen las columnas que desee en relaci??n con el StartColumn |
| rowIndex | Un vector num??rico que especifica las filas que desea en relaci??n con el startRow |
| x | Los datos que desea agregar al bloque de celdas, un vector o una matriz dependiendo de la funci??n |
Ejemplo
wb <- createWorkbook()
sheet <- createSheet(wb, sheetName="CellBlock")
cb <- CellBlock(sheet, 7, 3, 1000, 60)
CB.setColData(cb, 1:100, 1) # set a column
CB.setRowData(cb, 1:50, 1) # set a row
# add a matrix, and style it
cs <- CellStyle(wb) + DataFormat("#,##0.00")
x <- matrix(rnorm(900*45), nrow=900)
CB.setMatrixData(cb, x, 10, 4, cellStyle=cs)
# highlight the negative numbers in red
fill <- Fill(foregroundColor = "red", backgroundColor="red")
ind <- which(x < 0, arr.ind=TRUE)
CB.setFill(cb, fill, ind[,1]+9, ind[,2]+3) # note the indices offset
# set the border on the top row of the Cell Block
border <- Border(color="blue", position=c("TOP", "BOTTOM"),
pen=c("BORDER_THIN", "BORDER_THICK"))
CB.setBorder(cb, border, 1:1000, 1)
# Don t forget to save the workbook ...
# saveWorkbook(wb, file)
Cree un objeto CellProtection utilizado para los estilos de celda usando.
CellProtection(locked=TRUE, hidden=FALSE)
is.CellProtection(x)
Donde
| Elemento | Concepto |
|---|---|
| locked | Una l??gica indicando que la celda est?? bloqueada |
| hidden | Una l??gica que indica que la celda est?? oculta |
| x | Un objeto CellProtection, como devuelto por CellProtection |
Ejemplo
font <- CellProtection(locked=TRUE)
Cree y establezca estilos de celda usando.
## Default S3 method:
CellStyle(wb, dataFormat=NULL, alignment=NULL,
border=NULL, fill=NULL, font=NULL, cellProtection=NULL)
setCellStyle(cell, cellStyle)
getCellStyle(cell)
is.CellStyle(x)
Donde
| Elemento | Concepto |
|---|---|
| wb | Un objeto de libro como devuelto por createWorkbook r loadWorkbook |
| dataFormat | Un objeto de formato de datos |
| alignment | Un objeto Alineaci??n |
| border | Un objeto Borde |
| fill | Un objeto de relleno |
| font | Un objeto Fuente |
| cellProtection | Un objeto CellProtection |
| x | Un objeto CellStyle |
| cell | Un objeto Cell |
| cellStyle | Un objeto CellStyle |
| … | Argumentos a CellStyle.default |
Ejemplo
## Not run:
wb <- createWorkbook()
sheet <- createSheet(wb, "Sheet1")
rows <- createRow(sheet, rowIndex=1)
cell.1 <- createCell(rows, colIndex=1)[[1,1]]
setCellValue(cell.1, "Hello R!")
cs <- CellStyle(wb) +
Font(wb, heightInPoints=20, isBold=TRUE, isItalic=TRUE,
name="Courier New", color="orange") +
Fill(backgroundColor="lavender", foregroundColor="lavender",
pattern="SOLID_FOREGROUND") +
Alignment(h="ALIGN_RIGHT")
setCellStyle(cell.1, cellStyle1)
Funciones para manipular los comentarios de la celdas usando.
createCellComment(cell, string="", author=NULL, visible=TRUE)
getCellComment(cell)
removeCellComment(cell)
Donde
| Elemento | Concepto |
|---|---|
| cell | Un objeto Cell |
| string | Una cadena para el comentario |
| author | Una cadena con el nombre del autor |
| visible | Un valor l??gico. Si es VERDADERO el comentario ser?? visible |
Ejemplo
wb <- createWorkbook()
sheet1 <- createSheet(wb, "Sheet1")
rows <- createRow(sheet1, rowIndex=1:10) # 10 rows
cells <- createCell(rows, colIndex=1:8) # 8 columns
DataFormat
cell1 <- cells[[1,1]]
setCellValue(cell1, 1) # add value 1 to cell A1
# create a cell comment
createCellComment(cell1, "Cogito", author="Descartes")
# extract the comments
comment <- getCellComment(cell1)
stopifnot(comment$getAuthor()=="Descartes")
stopifnot(comment$getString()$toString()=="Cogito")
# don t forget to save your workbook!
Cree un objeto DataFormat, ??til cuando se trabaja con estilos de celda usando.
DataFormat(x)
is.DataFormat(df)
Donde
| Elemento | Concepto |
|---|---|
| x | Un valor de car??cter que especifica el formato de datos |
| df | Un objeto DataFormat, como devuelto por DataFormat |
Ejemplo
df <- DataFormat("#,##0.00")
Crear un objeto de relleno, ??til cuando se trabaja con estilos de celda usando.
Fill(foregroundColor="lightblue", backgroundColor="lightblue",
pattern="SOLID_FOREGROUND")
is.Fill(x)
Donde
| Elemento | Concepto |
|---|---|
| foregroundColor | Un vector de caracteres que especifica el color de primer plano. Pueden utilizarse todos los nombres de color devueltos por colores. O, un car??cter hexadecimal, p. “# FF0000” para el rojo. Para los libros de Excel 95, s??lo est?? disponible un subconjunto de colores, consulte la constante INDEXED_COLORS_ |
| backgroundColor | Un vector de caracteres que especifica el color de primer plano. Pueden utilizarse todos los nombres de color devueltos por colores. O, un car??cter hexadecimal, p. “# FF0000” para el rojo. Para los libros de Excel 95, s??lo est?? disponible un subconjunto de colores, consulte la constante INDEXED_COLORS_ |
| pattern | Un vector de caracteres que especifica el estilo del patr??n de relleno. Los valores v??lidos provienen de constantes FILL_STYLES_ |
| x | Un objeto de relleno, como devuelto por relleno |
Ejemplo
fill <- Fill()
Cree un objeto Fuente usando.
Font(wb, color=NULL, heightInPoints=NULL, name=NULL,
isItalic=FALSE, isStrikeout=FALSE, isBold=FALSE, underline=NULL,
boldweight=NULL)
is.Font(x)
Donde
| Elemento | Concepto |
|---|---|
| wb | Un objeto de libro como devuelto por createWorkbook o loadWorkbook |
| color | Un car??cter especificando el color de la fuente. Se puede utilizar cualquier nombre de color devuelto por colores. O, un car??cter hexadecimal, p. “# FF0000” para el rojo. Para libros de trabajo de Excel 95, s??lo un subconjunto de colores est?? disponible, consulte la constante INDEXED_COLORS_ |
| heightInPoints | Un valor num??rico que especifica la altura de la fuente. Los valores usuales son 10, 12, 14, etc |
| name | Un valor de car??cter para la fuente a utilizar. Todos los valores que ve en Excel deber??an estar disponibles,e.g. “Courier New” |
| isItalic | Una indicaci??n l??gica de la fuente debe ser cursiva |
| isStrikeout | Una l??gica indicando la fuente debe ser stiked hacia fuera |
| isBold | Una indicaci??n l??gica de la fuente debe ser negrita |
| underline | Un valor num??rico que especifica el grosor del subrayado. Los valores permitidos son 0, 1, 2 |
| boldweight | Un valor num??rico que indica el peso en negrita. Normal es 400, la negrita regular es 700 |
| x | Un objeto Fuente, como devuelto por Fuente |
| … | Los argumentos se pasan a Fuente |
Ejemplo
## Not run:
font <- Font(wb, color="blue", isItalic=TRUE)
## End(Not run)
Funciones para manipular rangos con nombre (contiguos) usando.
getRanges(wb)
readRange(range, sheet, colClasses="character")
createRange(rangeName, firstCell, lastCell)
Donde
| Elemento | Concepto |
|---|---|
| wb | Un objeto de libro como devuelto por createWorksheet o loadWorksheet |
| range | Un objeto de rango devuelto por getRanges |
| sheet | Un objeto de hoja como devuelto por getSheets |
| rangeName | Un car??cter que especifica el nombre del nombre a crear |
| colClasses | El tipo de columnas soportadas. Solo se admiten n??meros y caracteres. Consulte read.xlsx2 para m??s detalles |
| firstCell | Un objeto de c??lula correspondiente a la celda superior izquierda del rango |
| lastCell | Un objeto de c??lula correspondiente a la celda inferior derecha del rango |
Ejemplo
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheet <- getSheets(wb)[["deletedFields"]]
ranges <- getRanges(wb)
# the call below fails on cran tests for MacOS. You should see the
# FAQ: http://code.google.com/p/rexcel/wiki/FAQ
#res <- readRange(ranges[[1]], sheet, colClasses="numeric") # read it
ranges[[1]]$getNameName() # get its name
# see all the available java methods that you can call
.jmethods(ranges[[1]])
# create a new named range
firstCell <- sheet$getRow(14L)$getCell(4L)
lastCell <- sheet$getRow(20L)$getCell(7L)
rangeName <- "Test2"
# same issue on MacOS
#createRange(rangeName, firstCell, lastCell)
Funciones para hacer varios efectos de hojas de c??lculo usando.
addAutoFilter(sheet, cellRange)
addMergedRegion(sheet, startRow, endRow, startColumn, endColumn)
removeMergedRegion(sheet, ind)
autoSizeColumn(sheet, colIndex)
createFreezePane(sheet, rowSplit, colSplit, startRow=NULL,
startColumn=NULL)
createSplitPane(sheet, xSplitPos=2000, ySplitPos=2000,
startRow=1, startColumn=1, position="PANE_LOWER_LEFT")
setColumnWidth(sheet, colIndex, colWidth)
setPrintArea(wb, sheetIndex, startColumn, endColumn, startRow,
endRow)
setZoom(sheet, numerator=100, denominator=100)
Donde
| Elemento | Concepto |
|---|---|
| cellRange | Una cadena especificando el rango de celdas. Por ejemplo, un ??rea est??ndar ref (por ejemplo, “B1: D8”). Puede ser una c??lula ??nica ref (por ejemplo, “B5”) en cuyo caso el resultado es un intervalo de c??lulas 1 x 1. Tambi??n puede ser un intervalo de fila entera (por ejemplo, “3: 5”), o un rango completo de columnas (e.g. “C: F”) |
| colIndex | Un vector num??rico que especifica las columnas que desea utilizar en el tama??o autom??tico |
| colSplit | Un valor num??rico para la columna a dividir |
| colWidth | Un valor num??rico para especificar el ancho de la columna. Las unidades est??n en 1 / 256ths de un ancho de car??cter |
| denominator | Un valor num??rico que representa el denomiador de la relaci??n de zoom |
| endColumn | Un valor num??rico para la columna final |
| endRow | Un valor num??rico para la fila final |
| ind | Un valor num??rico que indica la regi??n fusionada que desea eliminar |
| numerator | Un valor num??rico que representa el numerador de la relaci??n de zoom. |
| position | un personaje. Los valores v??lidos son “PANE_LOWER_LEFT”, “PANE_LOWER_RIGHT”, “PANE_UPPER_LEFT”, “PANE_UPPER_RIGHT” |
| rowSplit | Un valor num??rico para la fila a dividir |
| sheet | Un objeto de hoja de c??lculo |
| sheetIndex | Un valor num??rico para el ??ndice de hoja de c??lculo |
| startColumn | Un valor num??rico para la columna de inicio |
| startRow | Un valor num??rico para la fila de inicio |
| xSplitPos | Un valor num??rico para la posici??n horizontal de la divisi??n en 1/20 de un punto |
| ySplitPos | Un valor num??rico para la posici??n vertical de la divisi??n en 1/20 de un punto |
| wb | Un objeto de libro |
Ejemplo
wb <- createWorkbook()
sheet1 <- createSheet(wb, "Sheet1")
rows <- createRow(sheet1, 1:10) # 10 rows
cells <- createCell(rows, colIndex=1:8) # 8 columns
cat("Merge cells \n")
setCellValue(cells[[1,1]], "A title that spans 3 columns")
addMergedRegion(sheet1, 1, 1, 1, 3)
cat("Set zoom 2:1 \n")
setZoom(sheet1, 200, 100)
sheet2 <- createSheet(wb, "Sheet2")
rows <- createRow(sheet2, 1:10) # 10 rows
cells <- createCell(rows, colIndex=1:8) # 8 columns
#createFreezePane(sheet2, 1, 1, 1, 1)
createFreezePane(sheet2, 5, 5, 8, 8)
sheet3 <- createSheet(wb, "Sheet3")
rows <- createRow(sheet3, 1:10)
cells <- createCell(rows, colIndex=1:8)
createSplitPane(sheet3, 2000, 2000, 1, 1, "PANE_LOWER_LEFT")
# set the column width of first column to 25 characters wide
setColumnWidth(sheet1, 1, 25)
# add a filter on the 3rd row, columns C:E
addAutoFilter(sheet1, "C3:E3")
# Don t forget to save the workbook ...
Funciona para manipular im??genes en una hoja de calculo usando.
addPicture(file, sheet, scale=1, startRow=1, startColumn=1)
Donde
| Elemento | Concepto |
|---|---|
| file | El camino absoluto al archivo de imagen |
| sheet | Un objeto de hoja de c??lculo devuelto por createSheet o subconjunto de |
| getSheets.La imagen se agregar?? en esta hoja en la posici??n startRow, startColumn | |
| scale | Un num??rico que especifica el factor de escala para la imagen |
| startRow | Un num??rico que especifica la fila de la esquina superior izquierda de la imagen |
| startColumn | Un num??rico que especifica la columna de la esquina superior izquierda de la imagen |
Ejemplo
file <- system.file("tests", "log_plot.jpeg", package = "xlsx")
wb <- createWorkbook()
sheet <- createSheet(wb, "Sheet1")
addPicture(file, sheet)
# don t forget to save the workbook!
Documentar algunas constantes de POI de Apache utilizadas en el proyecto usando.
HALIGN_STYLES_
VALIGN_STYLES_
BORDER_STYLES_
FILL_STYLES_
CELL_STYLES_
INDEXED_COLORS_
Funcion para manipular la configuracion de impresion usando.
printSetup(sheet, fitHeight=NULL,
fitWidth=NULL, copies=NULL, draft=NULL, footerMargin=NULL,
mheaderMargin=NULL, landscape=FALSE, pageStart=NULL, paperSize=NULL,
noColor=NULL)
Donde
| Elemento | Concepto |
|---|---|
| sheet | Un objeto de hoja de c??lculo Hoja de trabajo |
| fitHeight | Valor num??rico para establecer el n??mero de p??ginas para que se ajuste a la hoja |
| fitWidth | Valor num??rico para establecer el n??mero de p??ginas de ancho para adaptarse a la hoja |
| copies | Valor num??rico para establecer el n??mero de copias |
| draft | L??gico que indica si es un borrador o no |
| footerMargin | Valor num??rico para establecer el margen de pie de p??gina |
| headerMargin | Valor num??rico para establecer el margen del encabezado |
| landscape | Valor l??gico para especificar la orientaci??n del papel |
| pageStart | Valor num??rico desde donde comenzar la numeraci??n de la p??gina |
| paperSize | Para establecer el tama??o del papel. Los valores v??lidos son “A4_PAPERSIZE”, “A5_PAPERSIZE”, “ENVELOPE_10_PAPERSIZE”, “ENVELOPE_CS_PAPERSIZE”, “ENVELOPE_DL_PAPERSIZE”, “ENVELOPE_MONARCH_PAPERSIZE”, “EXECUTIVE_PAPERSIZE”, “LE- |
| GAL_PAPERSIZE “,” LETTER_PAPERSIZE “ | |
| noColor | Valor l??gico para indicar si las impresiones deben ser de color o no |
Ejemplo
wb <- createWorkbook()
sheet <- createSheet(wb, "Sheet1")
ps <- printSetup(sheet, landscape=TRUE, copies=3)
Lea el contenido de una hoja de trabajo en un archivo de datos R usando.
read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL,
startRow=NULL, endRow=NULL, colIndex=NULL,
as.data.frame=TRUE, header=TRUE, colClasses=NA,
keepFormulas=FALSE, encoding="unknown", ...)
read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1,
colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE,
colClasses="character", ...)
Donde
| Elemento | Concepto |
|---|---|
| file | La ruta al archivo para leer |
| sheetIndex | Un n??mero que representa el ??ndice de hoja en el libro |
| sheetName | Una cadena de caracteres con el nombre de la hoja |
| rowIndex | Un vector num??rico que indica las filas que desea extraer. Si NULL, todas las filas encontradas se extraer??n, a menos que se especifique startRow o endRow |
| colIndex | Un vector num??rico que indica las columnas que desea extraer. Si NULL, se extraer??n todas las columnas encontradas |
| as.data.frame | Un valor l??gico que indica si el resultado debe ser coaccionado en un data.frame. Si FALSE, el resultado es una lista con un elemento para cada columna |
| header | Un valor l??gico que indica si la primera fila correspondiente al primer elemento del vector rowIndex contiene los nombres de las variables |
| colClasses | Para read.xlsx un vector de caracteres que representa la clase de cada columna. Si se vuelve a encender seg??n sea necesario, o si se nombra el vector de caracteres, los valores no especificados se tomar??n como NA. Para read.xlsx2 vea readColumns |
| keepFormulas | Un valor l??gico que indica si las f??rmulas de Excel deben mostrarse como texto en R y no evaluadas antes de introducirlas |
| encoding | Codificaci??n a ser asumida para cadenas de entrada. V??ase read.table |
| startRow | Un n??mero que especifica el ??ndice de la fila inicial. Para read.xlsx este argumento es Activo s??lo si rowIndex es NULL |
| endRow | Un n??mero que especifica el ??ndice de la ??ltima fila a tirar. Si es NULL, lea todas las filas En la hoja. Para read.xlsx este argumento s??lo est?? activo si rowIndex es NULL |
| … | Otros argumentos a data.frame, por ejemplo stringsAsFactors |
Ejemplo
## Not run:
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
res <- read.xlsx(file, 1) # read first sheet
head(res)
# NA. Population Income Illiteracy Life.Exp Murder HS.Grad Frost Area
#1 Alabama 3615 3624 2.1 69.05 15.1 41.3 20 50708
#2 Alaska 365 6315 1.5 69.31 11.3 66.7 152 566432
#3 Arizona 2212 4530 1.8 70.55 7.8 58.1 15 113417
#4 Arkansas 2110 3378 1.9 70.66 10.1 39.9 65 51945
#5California 21198 5114 1.1 71.71 10.3 62.6 20 156361
#6 Colorado 2541 4884 0.7 72.06 6.8 63.9 166 103766
#>
# To convert an Excel datetime colum to POSIXct, do something like:
# as.POSIXct((x-25569)*86400, tz="GMT", origin="1970-01-01")
# For Dates, use a conversion like:
# as.Date(x-25569, origin="1970-01-01")
res2 <- read.xlsx2(file, 1)
## End(Not run)
Lea un conjunto contiguo de columnas de la hoja en un archivo data.frame.
Utiliza el RInterface para la velocidad usando.
readColumns(sheet, startColumn, endColumn, startRow,
endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA,
...)
Donde
| Elemento | Concepto |
|---|---|
| sheet | Un objeto de hoja de c??lculo |
| startColumn | Un valor num??rico para la columna de inicio |
| endColumn | Un valor num??rico para la columna final |
| startRow | Un valor num??rico para la fila de inicio |
| endRow | Un valor num??rico para la fila final. Si NULL lee todas las filas de la hoja. Si solicita m??s que las filas existentes en la hoja, el resultado se truncar?? por el n??mero de fila real |
| as.data.frame | Un valor l??gico que indica si el resultado debe ser coaccionado en un data.frame. Si FALSE, el resultado es una lista con un elemento para cada columna |
| header | Un valor l??gico que indica si la primera fila correspondiente al primer elemento del vector rowIndex contiene los nombres de las variables |
| colClasses | Un vector de caracteres que representa la clase de cada columna. Reciclado seg??n sea necesario, o si NA se intenta adivinar el tipo de cada columna leyendo la primera fila de datos. S??lo se aceptan los tipos num??ricos, de car??cter, fecha, POSIX, columna. Cualquier otra cosa se cubrir?? a un tipo de car??cter. Si la longitud es menor que el n??mero de columnas solicitadas, reproducirla |
| … | Otros argumentos a data.frame, por ejemplo stringsAsFactors |
Ejemplo
## Not run:
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheets <- getSheets(wb)
sheet <- sheets[["all"]]
res <- readColumns(sheet, startColumn=3, endColumn=10, startRow=3,
endRow=7)
sheet <- sheets[["NAs"]]
res <- readColumns(sheet, 1, 6, 1, colClasses=c("Date", "character",
"integer", rep("numeric", 2), "POSIXct"))
## End(Not run)
Lee un conjunto contiguo de filas en una matriz de caracteres R. Utiliza la interfaz para la velocidad usando.
readRows(sheet, startRow, endRow, startColumn,
endColumn=NULL)
Donde
| Elemento | Concepto |
|---|---|
| sheet | Un objeto de hoja de c??lculo |
| startRow | Un valor num??rico para la fila de inicio |
| endRow | Un valor num??rico para la fila final. Si NULL lee todas las filas de la hoja |
| startColumn | Un valor num??rico para la columna de inicio |
| endColumn | Un valor num??rico para la columna final. Las celdas vac??as se devolver??n como “” |
Ejemplo
## Not run:
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheets <- getSheets(wb)
sheet <- sheets[["all"]]
res <- readRows(sheet, startRow=3, endRow=7, startColumn=3, endColumn=10)
Funciones para manipular filas de una hoja de c??lculo usando.
createRow(sheet, rowIndex=1:5)
getRows(sheet, rowIndex=NULL)
removeRow(sheet, rows=NULL)
setRowHeight(rows, inPoints, multiplier=NULL)
Donde
| Elemento | Concepto |
|---|---|
| sheet | Un objeto de hoja de c??lculo devuelto por createSheet o subconjunto de getSheets |
| rowIndex | Un vector num??rico que especifica el ??ndice de filas a crear. Para getRows, un NULL |
| rows | Valor devolver?? todas las filas no vac??as |
| inPoints | Una lista de objetos de fila |
| multiplier | Un valor num??rico para especificar el m??ltiplo de la altura de fila predeterminada en puntos. Si se establece este valor, tiene prioridad sobre el argumento inPoints |
Ejemplo
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheets <- getSheets(wb)
sheet <- sheets[[2]]
rows <- getRows(sheet) # get all the rows
# see all the available java methods that you can call
.jmethods(rows[[1]])
# for example
rows[[1]]$getRowNum() # zero based index in Java
removeRow(sheet, rows) # remove them all
# create some row
rows <- createRow(sheet, rowIndex=1:5)
setRowHeight( rows, multiplier=3) # 3 times bigger rows than the default
Funciones para manipular hojas de trabajo usando.
createSheet(wb, sheetName="Sheet1")
removeSheet(wb, sheetName="Sheet1")
getSheets(wb)
Donde
| Elemento | Concepto |
|---|---|
| wb | Un objeto de libro como devuelto por createWorksheet o loadWorksheet |
| sheetName | Un car??cter que especifica el nombre de la hoja de c??lculo que se va a crear o quitar |
Ejemplo
file <- system.file("tests", "test_import.xlsx", package = "xlsx")
wb <- loadWorkbook(file)
sheets <- getSheets(wb)
sheet <- sheets[[2]] # extract the second sheet
# see all the available java methods that you can call
.jmethods(sheet)
# for example
sheet$getLastRowNum()
Funciones para manipular los libros de Excel 2007 usando.
createWorkbook(type="xlsx")
loadWorkbook(file)
saveWorkbook(wb, file)
Donde
| Elemento | Concepto |
|---|---|
| type | Una cadena, xlsx para Excel 2007 formato OOXML o xls para formato binario de Excel 95 |
| file | La ruta hacia el archivo que desea leer o escribir. Puede ser un formato xls o xlsx |
| wb | Un objeto de libro como devuelto por createWorkbook o loadWorkbook |
Ejemplo
wb <- createWorkbook()
# see all the available java methods that you can call
.jmethods(wb)
# for example
wb$getNumberOfSheets() # no sheet yet!
# loadWorkbook("C:/Temp/myFile.xls")
Escriba un archivo data.frame en un libro de Excel usando.
write.xlsx(x, file, sheetName="Sheet1",
col.names=TRUE, row.names=TRUE, append=FALSE, showNA=TRUE)
write.xlsx2(x, file, sheetName="Sheet1",
col.names=TRUE, row.names=TRUE, append=FALSE, ...)
Donde
| Elemento | Concepto |
|---|---|
| x | Un data.frame para escribir en el libro |
| file | La ruta de acceso al archivo de salida |
| sheetName | Una cadena de caracteres con el nombre de la hoja |
| col.names | Un valor l??gico que indica si los nombres de columnas de x deben escribirse junto con x en el archivo |
| row.names | Un valor l??gico que indica si los nombres de fila de x deben escribirse junto con x en el archivo |
| append | Un valor l??gico que indica si se debe a??adir x a un archivo existente. Si es VERDADERO se lee el archivo desde el disco |
| showNA | Un valor l??gico. Si se establece en FALSA, los valores NA se dejar??n como celdas vac??as |
| … | Otros argumentos para addDataFrame en el caso de read.xlsx2 |
Ejemplo
## Not run:
file <- paste(tempdir(), "/usarrests.xlsx", sep="")
res <- write.xlsx(USArrests, file)
# to change the default date format
oldOpt <- options()
options(xlsx.date.format="dd MMM, yyyy")
write.xlsx(x, sheet) # where x is a data.frame with a Date column.
options(oldOpt) # revert back to defaults
## End(Not run)