1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
   | #!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import division
# Python 2.7
 
import win32com.client
 
#############################################################################
class Excelfacile(object):
 
    def __init__(self, fichier=""):
 
        self.excel = win32com.client.Dispatch('Excel.Application')
        self.fichier = fichier
        if fichier=="":
            self.wb = self.excel.Workbooks.Add()
        else:
            self.wb = self.excel.Workbooks.Open(fichier)
 
    def nbrows(self, sheet=1):
        """retourne le nombre total de ligne utilisées"""
        return self.wb.Sheets(sheet).UsedRange.Rows.Count
 
    def nbcols(self, sheet=1):
        """retourne le nombre total de colonnes utilisées"""
        return self.wb.Sheets(sheet).UsedRange.Columns.Count
 
    def listeval(self, sheet=1, row1=1, col1=1, row2=None, col2=None):
        """retourne la liste des valeurs du rectangle [[row1,col1][row2,col2]]
           de la feuille 'sheet' 
           si row2 et/ou col2 = None, on prend la dernière ligne et/ou colonne   
        """        
        cell1 = self.wb.Worksheets(sheet).Cells(row1, col1)
        if row2==None:
            row2 = self.nbrows(sheet) - row1 + 1
        if col2==None:
            col2 = self.nbcols(sheet) - col1 + 1
        cell2 = self.wb.Worksheets(sheet).Cells(row2, col2)
        return self.wb.Worksheets(sheet).Range(cell1, cell2).Value
 
    def save(self, nouvfichier="", ):
        if nouvfichier=="":
            self.wb.Save()
        else:
            self.fichier = nouvfichier
            self.wb.SaveAs(nouvfichier)
 
    def close(self):
        self.wb.Close(SaveChanges=0)
        del self.excel
 
#############################################################################
if __name__ == "__main__":
 
    # chargement    
    excel = Excelfacile(r"C:\Chemin\vers\essai4.slk")
 
    # affichage des valeurs
    for ligne in excel.listeval():
        print ligne
 
    # enregistrement sous le format xls
    excel.save(r"C:\Chemin\vers\essai4.xls")
 
    # fermeture
    excel.close() | 
Partager