[VB.NET] Fichier Excel vérouillé avec mot de passe
Bonjour,
J'utilise une connexion OLEDB pour ouvrir un fichier Excel, genre : "provider=Microsoft.Jet.OLEDB.4.0; data source=monfichier.xls; Extended Properties=Excel 8.0;".
Le problème se pose quand dans le fichier le classeur et les feuilles sont vérrouillés par un mot de passe. Je n'arrive plus à y accéder même avec le mot de passe. On y ajoutant l'utilisateur et mot de passe dans la connexion, ça ne marche pas.
A part dévérrouillé manuellement le fichier, comment dévérouiller le classeur et chaque feuille par code ?
Quelqu'un a-t-il déjà rencontrer le problème ? si vous avez une solution à me proposer, merci d'avance.
[ASPX][VB.NET] Fichier Excel vérouillé avec mot de passe
Merci à Piotrek, car il m'a donnée une idée. En programmation, tout est possible.
Il y a 2 étapes à faire :
- dévérrouiller le classeur et la(les) feuille(s) via COM
- lire les données via OLEDB
Pour le dévérrouillage, voici la fonction :
Il ne faut pas oublier d'ajouter une référence MS Excel au projet
Code:
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
| 'Dévérrouillage du classeur et de la 2ème feuille
Private Function UnLockExcelFile()
Dim xlApp As Excel.Application = New Excel.Application
Dim sPwd As String = "TOTO"
Try
xlApp.Workbooks.open("C:\Fichier.xls")
'Vérifie si la feuille est vérrouillée
If xlApp.Workbooks(1).WorkSheets(2).ProtectContents Then
xlApp.Workbooks(1).Worksheets(2).Unprotect(sPwd)
End If
'Vérifie si le classeur est vérrouillé
If xlApp.Workbooks(1).ProtectStructure Then
xlApp.Workbooks(1).Unprotect(sPwd)
End If
xlApp.Workbooks(1).Save()
xlApp.Workbooks.Close()
xlApp.Quit()
Catch ex As Exception
AfficheErreur(ex.Message)
Finally
xlApp = Nothing
End Try
End Function |