J'ai un fichier xlsx que je génère en utilisant SSIS. Les données dans ce fichier sont écrites via une tâche de flux de données où le fichier xlsx est la destination oledb. J'ai utilisé la chaîne de connexion suivante comme expression pour la connexion OLEDB:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::ExcelPath] +";
Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"
Le fichier s'ouvre juste avant la tâche de flux de données. Après la tâche de flux de données, je reçois une boîte de dialogue comme suit:
Lorsque je clique sur oui, je reçois un autre message:
Le contenu du fichier XML est
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <logFileName>error072840_02.xml</logFileName><summary>Errors were detected in file 'C:\output\documentId-1.xlsx'</summary><removedRecords summary="Following is a list of removed records:"><removedRecord>Removed Records: Named range from /xl/workbook.xml part (Workbook)</removedRecord></removedRecords></recoveryLog>
Je ne suis pas capable de comprendre ce qui cause exactement cette erreur. Toute aide serait appréciée. TIA
Je l'ai résolu. Je ne connais pas vraiment la raison. A fait des recherches et a appris que quelque chose lié aux noms d'onglets peut causer ce problème. Je devais des onglets avec des noms comme 'tab' et 'tab (2)'. Peut-être que xlsx les traite comme des noms identiques.
J'avais ce problème lorsque j'utilisais EPPlus pour personnaliser un modèle existant. Pour moi, le problème se trouvait dans le modèle lui-même car il contenait des références non valides aux tables de recherche. J'ai trouvé cela dans Formula -> Name Manager.
Je vous suggère de vérifier le modèle si vous êtes confronté à ce problème.
Dans mon cas, une erreur similaire a été provoquée par un nom de feuille (onglet) de plus de 30 caractères.
Pour moi, c’était un bouton avec une macro assignée avec une valeur comme: 'MyMacro ("MyParam")'
Pour moi personnellement, les espaces/caractères spéciaux n'étaient pas pertinents dans les noms d'onglets. La plage nommée elle-même ne peut pas avoir d'espaces/caractères spéciaux car elle est traitée comme une variable
Peut-être qu'un caractère spécial dans votre nom de tabulation et que vous définissez une plage de noms avec le nom de tabulation. Tel que nom de tabulation est "A (1)", remplacez-le simplement par "A (1)"