Comment faire pour convertir .xls de .csv à l'aide de Powershell sans Excel est installé
Est-il un moyen de convertir des .xls de .csv sans Excel installé à l'aide de Powershell?
Je n'ai pas accès à Excel sur une machine en particulier si je reçois une erreur lorsque je tente:
New-Object -ComObject excel.application
Nouvelle-Objet : la Récupération de la fabrique de classe COM pour le composant avec le CLSID
{00000000-0000-0000-0000-000000000000} a échoué en raison de l'suivantes
erreur: 80040154 Classe non enregistrée (Exception de HRESULT:
0x80040154 (REGDB_E_CLASSNOTREG)).
- Je ne suis pas assez habile avec PowerShell pour fournir une réponse complète, mais je pense que vous pouvez vous connecter à un fichier Excel comme source de données Odbc, même sans Excel est installé, et vider les résultats d'une requête de sélection à partir de cette source de données au format csv. L'astuce est de savoir le nom de la feuille(s). Aussi, que voulez-vous faire si il n'y a plus de feuille de calcul?
- il n'y aura que chaque être une feuille.
- Trouve un exemple de ce que Joël a été parlé ici codeproject.com/Articles/670082/... et un autre blogs.technet.com/b/heyscriptingguy/archive/2008/09/11/...
- C'est un double possible de powershell excel access sans l'installation d'Excel
Vous devez vous connecter pour publier un commentaire.
Avant
En fonction de ce que vous avez déjà installé sur votre système, vous pourriez avoir besoin de la Microsoft Access Database Engine 2010 Redistribuable pour que cette solution fonctionne. Qui vous donnera accès au fournisseur de: "de Microsoft.ACE.OLEDB.12.0"
Avertissement: Pas super impressionné par le résultat, et quelqu'un avec plus d'arrière-plan peut faire cette réponse mieux, mais ici il va.
Code
Créer une connexion ODBC vers le fichier excel
$strFileName
. Vous avez besoin de savoir votre nom de la feuille et de le remplir$strSheetName
, qui aide à construire$strQuery
. Quand utiliser plusieurs objets pour créer une connexion et d'extraire les données à partir de la feuille comme unSystem.Data.DataTable
. Dans mon fichier de test, avec un peuplé de la feuille, j'ai eu deux colonnes de données. Après avoir exécuté le code de la sortie de$dt
est:Vous pouvez ensuite prendre la table et puis
ExportTo-CSV
Cela a été construit sur la base d'informations recueillies à partir de: