3. Plusieurs packages coexistent :
dataframe2xls
xlsx
XLConnect
…
XLConnect présente quelques avantages :
Traite à la fois les fichiers xls et les fichiers xlsx
Utilise des scripts en java, ce qui ne nécessite pas en général d’installation supplémentaire
Le package continue d’être développé et il y a de plus en plus d’options
EXPORTS DE R VERS OFFICE 05/04/2013 3
4. Version longue
wb <- loadWorkbook(chemin, create = Crée un lien avec un fichier excel et éventuellement crée le fichier
TRUE)
createSheet(wb, name = "Data") Crée un onglet Data
writeWorksheet(wb, a, sheet = "Data") Sauve les données de a dans l’onglet Data créé
saveWorkbook(wb) Sauve le fichier excel
Version courte
writeWorksheetToFile(chemin, data a, Remarques :
sheet = "Data") Ne permet pas de créer le fichier ni l’onglet
Pas recommandé dans le cas d’exportations multiples dans un même
fichier, car R lance plusieurs scripts en Java destinés au même fichier excel
et ça finit par bloquer, peut-être pour des raisons de synchronisation
Les fonctions « symétriques » sont … readWorksheet / readWorksheetFromFile
EXPORTS DE R VERS OFFICE 05/04/2013 4
5. Exportations de plusieurs tables simultanément
writeWorksheet(wb, list(a,b), sheet = Colle les tables a et b dans les onglets Data1 et Data2
c("Data1","Data2"))
Choix des cellules cibles
createSheet(wb, name = "Data2") Colle la table a dans l’onglet Data2
writeWorksheet(wb, a, sheet =
"Data2",header=F,startCol=2,startRow=2
Colle les donnée à partir de la deuxième ligne et de la deuxième
) colonne
N’écrit pas les noms de colonnes
Dupplication d’onglets / Suppression du contenu
cloneSheet(wb, sheet = "Data2", name = Duplique l’onglet Data2
"Data3")
clearSheet(wb, sheet = "Data3") Supprime le contenu de Data3
EXPORTS DE R VERS OFFICE 05/04/2013 5
6. Possibilité de modifier des formats directement sous R
wb <- Exemple 1 : on change la taille des cellules dans l’onglet Data2
loadWorkbook(paste(nomDossier,"/Result
ats.xlsx",sep=""), create = FALSE)
setRowHeight(wb, sheet = "Data2", row
= 2:11, height = 30)
setColumnWidth(wb, sheet = "Data2",
column = 2:11, width = 4000)
saveWorkbook(wb)
wb <-
Exemple 2 : modification de la couleur de fond dans l’onglet Data2
loadWorkbook(paste(nomDossier,"/Result
ats.xlsx",sep=""), create = FALSE)
format1 <- createCellStyle(wb)
# On veut changer la couleur de fond
...
setFillPattern(format1, fill =
XLC$"FILL.SOLID_FOREGROUND")
# ... en rouge foncé
setFillForegroundColor(format1, color
= XLC$"COLOR.DARK_RED")
# on applique ici à la première ligne
setCellStyle(wb, sheet = "Data2", row
= 2, col = 2:11, C’est (excessivement) pénible
cellstyle = format1)
saveWorkbook(wb)
EXPORTS DE R VERS OFFICE 05/04/2013 6
7. Possibilité de ne pas écraser le format de la cellule d’arrivée
wb <- loadWorkbook(chemin, create = Garde le format de la cellule d’arrivée… pas très chic mais ça
FALSE) marche
setStyleAction(wb,XLC$"STYLE_ACTION.NO
NE")
writeWorksheet(wb, b, sheet =
"Data2",header=F,startCol=2,startRow=2
)
saveWorkbook(wb)
Possibilité d’appliquer des formats enregistrés dans le fichier excel
Il faut d’abord créer les formats que l’on souhaite dans un fichier excel
Ensuite, on peut partir de ce fichier excel en le dupliquant avant d’écrire dedans afin de disposer des « bons » formats
wb <- loadWorkbook(chemin, create = Récupère le format Format1 et l’applique à la cellule choisie
FALSE)
Format1 <- getCellStyle(wd, "Format
1")
setCellStyle(w,
sheet="Data2",row=1,col=1,cellstyle=Fo
rmat1)
saveWorkbook(wb)
EXPORTS DE R VERS OFFICE 05/04/2013 7
9. Ce package est en basé sur le package RCOM, qui lui-même utilise
l’application statconnDCOM
Pour installer statconnDCOM :
1. Utiliser l’instruction du package RCOM : installstatconnDCOM(id="rcom")
2. Télécharger depuis le site : http://rcom.univie.ac.at/
L’intérêt de R2wd est que ce package rend l’utilisation de RCOM facile
EXPORTS DE R VERS OFFICE 05/04/2013 9
10. Ouverture de word et création d’un document
wdGet() Ouverture de Word
wdNewDoc("chemin/Nouveau.doc") Création du document Nouveau.doc
wdSave() Enregistrement
wdQuit() Fermeture de Word
Ecriture de texte
wdTitle("Titre") Le format Titre du document word est utilisé
wdSection("Titre 1",newpage=TRUE) Le format Titre1 du document word est utilisé
wdSubsection("Titre 2") Le format Titre2 du document word est utilisé
wdSubsubsection("Titre 3") Le format Titre3 du document word est utilisé
wdBody("Normal") Le format Normal du document word est utilisé
EXPORTS DE R VERS OFFICE 05/04/2013 10
11. Mélanger des valeur et du texte
wdTitle(paste("Résultats du",date)
Coller des bouts de code R ou des sorties de console
Verbatim("ceci est mon code")
Faire des conversion d’unités (qu’est ce que ça fait dans ce package)
wdConvert(1,"in","pt")
wdConvert(1,"pt","in") Peut toujours servir…
wdConvert(1,"cm","pt")
EXPORTS DE R VERS OFFICE 05/04/2013 11
12. Export d’un graphique simple
wdPlot(1:100,1:100 )
Possibilité de choisir la fonction graphique
wdPlot(1:100,1:100,fun=boxplot )
EXPORTS DE R VERS OFFICE 05/04/2013 12
13. Export de base
wdTable(a)
On peut utiliser la fonction format() pour un formatage rapide
wdTable(format(a))
EXPORTS DE R VERS OFFICE 05/04/2013 13
15. Taille des lignes et des polices
wdTable(format(a),padding=10,pointsize
=5)
Formats « automatiques » autoformat = 1/2/3
EXPORTS DE R VERS OFFICE 05/04/2013 15
17. Ouverture de Word et création d’un document
comApp<-comCreateObject("Word.Application")
Instancie une nouvelle application Word
comSetProperty(comApp,"Visible",TRUE)
Rend Word visible
comDoc<-
comInvoke(comGetProperty(comApp,"Documents"),"Add") Instancie un nouveau document dans Word
Ecriture de texte
comApp[["Selection"]][["Text"]]<- "Ecrire du Pas très ergonomique
texte…"
Créer un graphique
win.metafile()
plot(density(rnorm(10000,0,1)))
dev.off()
# Etape 4: insertion graphique dans le workbook
comSelection<-comApp[["Selection"]]
docImage<-comInvoke(comSelection,"Paste")
EXPORTS DE R VERS OFFICE 05/04/2013 17
18. Ouverture de Excel et création d’un document
comApp<-comCreateObject("Excel.Application") Instancie une nouvelle application Excel
comSetProperty(pptApp,"Visible",TRUE) Rend Excel visible
comXls<- Instancie un nouveau document dans Excel
comInvoke(comGetProperty(comApp,"Workbooks"),"Add")
Ecriture
comSheet<-comGetProperty(comXls,"Worksheets",1)
comRange<-
comGetProperty(comSheet,"Range","A1","B4")
comSetProperty(comRange,"Value",cbind(c(11:14),c(15
:18)))
EXPORTS DE R VERS OFFICE 05/04/2013 18
19. Ouverture de PowerPoint et création d’un document
comApp<-comCreateObject("PowerPoint.Application") Instancie une nouvelle application PowerPoint
comSetProperty(comApp,"Visible",TRUE) Rend PowerPoint visible
pptPresentation<- Instancie un nouveau document dans
comInvoke(pptApp[["Presentations"]],"Add",-1)
PowerPoint
pptSlides<-comGetProperty(pptPresentation,"Slides")
Ecriture
pptCurrSlide<-comInvoke(pptSlides,"Add",1,11)
pptShapes<-pptCurrSlide[["Shapes"]]
pptCurrShape[["TextFrame"]][["TextRange"]][["Text"]
]<- "Slide créée depuis R"
EXPORTS DE R VERS OFFICE 05/04/2013 19