Articles - R

XLConnect: lire, ?crire et manipuler des fichiers Microsoft Excel ? partir de R

  |   2885  |  R  |  R et excel, RExcel, R2XLSX, XLConnect


    XLConnect est un package qui permet de lire, ?crire et manipuler des fichiers Microsoft Excel ? partir de
    R.


    Il ne n?cessite aucune installation de Microsoft Excel ou d'autres pilotes sp?ciaux pour ?tre capable de lire et ?crire des fichiers Excel. La seule exigence est d'avoir une version r?cente de Java Runtime Environment (JRE) install?e.

    Pour commencer lire la vignette du package. De nombreuses d?monstrations sont disponibles via la commande R demo(package = "XLConnect"). Vous pouvez ?galement parcourir le manuel de r?f?rence complet du package.

    Installation



    Configuration logicielle requise


    • R, la version 2.10.0 ou sup?rieur
    • Java Runtime Environment (JRE), version 6.0 ou sup?rieure



    si vous n'avez pas JRE sur votre ordinateur, vous devez l'installer:
    sur linux / ubuntu utiliser cette commande: apt-get install openjdk-6-jdk


    Installation du package



    XLConnect peut ?tre facilement install? en utilisant la commande R install.packages() dans votre session R:

    Code R :
    install.packages("XLConnect")


    ?criture dans un fichier excel



    Fonctions de base



    Code R :
     
    #loading the package
    require(XLConnect)
     
    #creating an Excel workbook. Both .xls and .xlsx file formats can be used.
    wb <- loadWorkbook("XLConnectExample1.xlsx", create = TRUE)
     
    #creating sheets within an Excel workbook
    createSheet(wb, name = "chickSheet")
     
    #writing into sheets within an Excel workbook : 
    #writing ChickWeight data frame into chickSheet
    writeWorksheet(wb, ChickWeight, sheet = "chickSheet", startRow = 3, startCol = 4)
     
    #saving a workbook to an Excel file :
    #saves a workbook to the corresponding Excel file and writes the file to disk.
    saveWorkbook(wb)
     




    Ecrire dans un fichier excel avec une seule ligne de commande



    Les quatre lignes de code pr?sent?es dans l'exemple pr?c?dent peuvent ?tre remplac?es par un seul appel de la fonction writeWorksheetToFile():

    Code R :
     
    require(XLConnect)
    writeWorksheetToFile("XLConnectExample2.xlsx", data = ChickWeight, 
                                     sheet = "chickSheet", startRow = 3, startCol = 4)
     


    writeWorksheetToFile() charge le classeur, c?e la feuille et enregistre finalement le classeur. Lorsque vous avez seulement besoin d'?crire une seule feuille dans un fichier Excel, c'est probablement le meilleur choix. Si vous avez besoin d'?crire plus de feuilles, toutefois, l'utilisation des fonctions pr?sent?es dans l'exemple pr?c?dent sera plus efficace. A chaque fois que la fonction writeWorksheetToFile() est appel?e, elle ?crit et ferme le fichier Excel. En revanche, l' utilisation des fonctions du premier exemple, vous permettent d'ouvrir le classeur, y effectuer des op?rations multiples et le fermer apr?s avoir fini.


    Lire un fichier excel



    Pour ce faire, nous allons utiliser le fichier cr?? dans l'exemple ci-dessus. Nous avons mis l'argument endRow ? 10 afin de limiter le r?sultat. Les autres arguments sont affect?s de la valeur 0 et ils seront donc d?termin?s automatiquement.
    Noter, que la variable sheet, prend comme valeur le nom de la feuille que nous voulons lire "chickSheet". On pourrait aussi le sp?cifier avec l'indice de la feuille, c'est ? dire sheet= 1.


    Les fonctions de base




    Code R :
     
    #loading the package
    require(XLConnect)
     
    #Loading an Excel workbook. Both .xls and .xlsx file formats can be used.
    wb = loadWorkbook("XLConnectExample1.xlsx", create = TRUE)
     
    #reading worksheets of an Excel workbook
    data = readWorksheet(wb, sheet = "chickSheet", startRow = 0, endRow = 10,
    startCol = 0, endCol = 0)
     
    #print data
    data
     


      weight Time Chick Diet
    1     42    0     1    1
    2     51    2     1    1
    3     59    4     1    1
    4     64    6     1    1
    5     76    8     1    1
    6     93   10     1    1
    7    106   12     1    1
    



    Lire un fichier excel avec une seule ligne de commande



    Code R :
     
    require(XLConnect)
    data = readWorksheetFromFile("XLConnectExample1.xlsx", sheet = "chickSheet", 
    startRow = 0, endRow = 10, startCol = 0, endCol = 0)
     


    Ajouter un graphique dans une feuille de Excel en utilisant une r?gion identifi?e


    Code R :
     
    # Load workbook (create if not existing)
    wb = loadWorkbook("add_image_to_excel.xls", create=TRUE)
     
    # Create a sheet named 'boxplot'
    createSheet(wb, name = "boxplot")
     
    # Create a named region called 'boxplot' referring to the sheet
    # called 'boxplot' 
    createName(wb, name = "boxplot", formula = "boxplot!$B$2")
     
    # Create R plot to a png device
    png(filename = "boxplot.png", width = 800, height = 600)
    boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
    dev.off()
     
    # Write image to the named region created above
    addImage(wb, filename = "boxplot.png", name="boxplot", originalSize = TRUE)
     
    # Save workbook (this actually writes the file to disk)
    saveWorkbook(wb)
     



    Le r?sultat est le suivant:

    Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
    Licence Creative Commons