Comment ouvrir des tables de données privées en boucleTout,
J'ai un problème assez simple. Je crois comprendre que lorsque vous ouvrez la table de données en tant que disque privé, vous la perdez si vous ne conservez pas la référence du nom de la table de données. Alors, comment conservez-vous les tables de données, en particulier lorsque vous les ouvrez dans le cadre d’une boucle? Pour par exemple:
FilePath = "C:\Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
dt = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 0 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
<BR />// This fails
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << Show Window(1);
); Re: Comment ouvrir des tables de données privées en boucle @Jeff_Perkinson ,
Vous voyez quoi, je vois l'erreur, mais en utilisant la commande window, j'aurais dû créer une nouvelle vue de données car il s'agit d'une table de données privée.
FilePath = "C:\Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
OpenDts[i] = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
// This works
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << New Data View;
); Re: Comment ouvrir des tables de données privées en boucle @Jeff_Perkinson ,
Cela échoue encore. J'ai utilisé le script exact et je constate que les références de la table de données sont stockées dans la liste. Cependant, lorsque j'essaie de les rendre visibles, cela échoue toujours.
Re: Comment ouvrir des tables de données privées en bouclePour clarifier, vous n'avez pas besoin d'essayer d'insérer dans une autre liste (votre "OpenDTS"). Utilisez une liste à gauche de l'instruction Open (), à la place de "dt".
FilePath = "~/Desktop/Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
OpenDts[i] = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
// This fails
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << Show Window(1);
); Re: Comment ouvrir des tables de données privées en boucleVous devez stocker vos références de table de données dans une liste au lieu de réutiliser la variable dt.