Lire le fichier excel protégé par mot de passe en utilisant OLEDB en C #
Dans mon application c# je suis en utilisant la chaîne de connexion OLEDB "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties=\"Excel 8.0;HDR=NO;ReadOnly=true;IMEX=1\"
" pour lire les fichiers Excel.
Pour lire un mot de passe protégé fichier j'ai essayé d'ajouter champ de mot de passe dans la chaîne de connexion, mais a été incapable de lire le fichier.
Je veux savoir est-il un moyen de lire le mot de passe protégé des fichiers Excel à l'aide de OLEDB si je connais son mot de passe au préalable.
source d'informationauteur UJ. | 2009-08-31
Vous devez vous connecter pour publier un commentaire.
Voici différentes façons de se connecter à un fichier Excely compris OLEDB. En fonction de cela, vous ne pouvez pas ouvrir un mot de passe protégé fichier avec des méthodes standard. Vous devez utiliser une solution de contournement.
C'est la solutionmais pas en C#, mais vous pouvez facilement l'adapter à vos besoins.
Si vous ne CONNAISSEZ pas le mot de passe vous-même, une alternative consiste à ré-écrire le fichier sans mot de passe. Vous pouvez utiliser ce projet pratique et ajouter la routine suivante:
Tous les détails ici.
Si vous utilisez une requête pour lire le fichier excel, il n'a pas d'importance si certaines feuilles sont protégées: Il fonctionne de toute façon.
Vous pouvez utiliser OoXmlCrypto flux pour accéder à Office 2007 fichiers cryptés. Open source, comprend modifié ExcelPackage.
Exemple de code:
Après j'ai fait des recherches, encore et encore, j'ai enfin trouvé 2 choses.
1.À l'aide de OLEDB , Il ne peut pas lire le fichier excel qui est protégé par mot de passe.
2.Même si Interop peut lire fichier excel, peu importe si le mot de passe protégé ou pas, ses performances ne sont pas aussi bon que OLEDB.
Donc, je crée code ci-dessous en combinant
1. OLEDB qui a une très belle performance et
2. Interop qui peut lire tous les fichiers excel.
Enfin, Si vous souhaitez supprimer la ligne vide lors de la récupération de données à partir d'excel, veuillez vérifier ce lien et code ci-dessous