9
votes

OpenXML SpreadsheetDocument.open (...) Obtenez une exception - la partie principale est manquante

J'ai un document XLSX avec des en-têtes et il est situé dans mon chemin de projet. Je souhaite insérer des données à l'aide de OpenXML, mais je reçois une exception lors de l'ouverture du fichier:

using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(MyxlsFileName, true))
{
    // ...
}


0 commentaires

3 Réponses :


4
votes

Vous ne pouvez pas ouvrir les fichiers xls avec openxml. Vous devez enregistrer votre fichier Excel sous la forme d'un fichier xlsx à l'aide de Microsoft Excel 2007 ou plus récent. (En supposant que vous utilisez l'extension de fichier correcte ici ...)

Les fichiers avec XLS Extension sont dans un format binaire propriétaire qui ne peut pas être traité avec openxml.

Vous avez donc deux options:

  1. Conversion manuellement vos fichiers XLS en XLSX avant de les traiter.
  2. Recherchez une bibliothèque ou une API pour traiter les fichiers XLS.

7 commentaires

J'ai essayé avec le fichier XLSX et j'ai eu la même exception.


Assurez-vous de sauvegarder votre fichier avec le type de fichier correct. Vous devez utiliser Excel 2007 ou 2010 et dans la boîte de dialogue Enregistrer où elle est indiquée: "Enregistrer sous le type:" Choisissez "Excel Workbook" et non "Classeur Excel 97-2003".


C'est exactement ce que j'ai fait.


Assurez-vous que le fichier n'est pas ouvert dans Excel Whioule que vous essayez de le lire, voir également cette question: Stackoverflow.com/Questtions/11212374/...


Le fichier est proche pendant l'exécution. Le lien ci-dessus concerne le fichier XML que j'utilise XLSX Dossier que j'ai créé moi-même.


Good.Je créé un fichier par code et l'exception ne se posa à nouveau. Merci.


@helb j'ai un fichier DOCX et pourtant je reçois cette erreur. Pouvez-vous expliquer pourquoi cela se produit?



5
votes

Bien que cela puisse être très évident, cela m'est arrivé: une autre situation qui pourrait déclencher la même erreur d'excact est lorsque vous obtenez le nom du fichier faux. Alors vérifiez que vous avez vraiment le chemin droit, pour moi, je me suis retrouvé avec un fichier nouvellement créé (avec la mauvaise orthographe), mais j'ai toujours la même erreur.


0 commentaires

-3
votes

Essayez d'utiliser SpreadsheetDocument.create

au lieu de "ouvrir"


0 commentaires