Position de la feuille de travail hors de scope. Connection fermée. Lors de l'utilisation d'EPPLUS

J'essaie d'ouvrir un file XLSX en tant que model (j'ai même utilisé un file blanc XLSX), en utilisant EPPLUS 4.0.3.

Si je n'ouvre pas le file model (vide ou le réel) et que je crée un nouveau classur et que je crée une feuille, ça marche bien. OU si j'ouvre le file model et crée une NOUVELLE feuille de calcul, cela fonctionne bien. Ce n'est que lorsque j'essaie d'accéder à la feuille FIRST dans le model que j'ai l'erreur: la position de la feuille de travail hors de scope.

Accédez à la première feuille de calcul comme ceci: workBook.Worksheets.First() NE workBook.Worksheets.First() PAS.

La première n'est plus une définition.

J'ai donc essayé d'accéder à la première feuille de travail par nom et par cette méthode workBook.Worksheets[1] utilisant à la fois 0 et 1 pour essayer d'get la première feuille.

MON CODE:

  var existingTemplate = new FileInfo(_ExcelTemplateFilePath); using (ExcelPackage p = new ExcelPackage(existingTemplate)) { // Get the work book in the file ExcelWorkbook workBook = p.Workbook; ExcelWorksheet ws = workBook.Worksheets[1]; // MY OTHER EXCEL CELL CODE HERE }} 

Est-ce que quelqu'un sait comment accéder à la première feuille et au file Excel?

J'ai pu contourner cette question en me référant à la feuille de calcul par nom, plutôt que par index.

 var oSheet = package.Workbook.Worksheets["My Worksheet Name"]; 

Je viens d'avoir ce même problème et le problème est que EPPlus étouffe les feuilles de calcul avec des plages nommées.

Voici ce que j'ai fait (en utilisant LibreOffice Calc) pour permettre la lecture de la feuille de calcul:

  1. Créer une copy de la feuille de calcul
  2. Ouvrir dans LibreOffice
  3. Élément de list
  4. Cliquez sur le button gauche dans le coin supérieur gauche pour définir les plages. Lit généralement "A1"
  5. Sélectionnez "Gérer les noms"
  6. Mettez en surbrillance la list complète
  7. Cliquez sur "Supprimer"

Une fois que j'ai terminé ces étapes, j'ai enregistré / fermé la feuille de calcul et j'ai pu l'ouvrir avec EPPlus.

pour get la première feuille, utilisez le code ci-dessous

  var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx")); ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1]; 

assurez-vous simplement de signaler l'location correct de votre classur