Eh bien, il y a une bonne solution pour cela. En utilisant OpenXML, vous pouvez activer l'option "Actualiser les données lors de l'ouverture du fichier" dans le tableau croisé dynamique (clic droit sur le tableau pivotant-> Options Tableau croisé dynamique-> onglet Données). Ce résultat dans le tableau croisé dynamique d'actualisation automatique lorsque l'utilisateur ouvre la feuille de calcul pour la première fois. Le code:
using (var document = SpreadsheetDocument.Open(newFilePath, true))
{
var uriPartDictionary = BuildUriPartDictionary(document);
PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart1 = (PivotTableCacheDefinitionPart)uriPartDictionary["/xl/pivotCache/pivotCacheDefinition1.xml"];
PivotCacheDefinition pivotCacheDefinition1 = pivotTableCacheDefinitionPart1.PivotCacheDefinition;
pivotCacheDefinition1.RefreshOnLoad = true;
}
vous devez déterminer "chemin" à la vôtre pivotCacheDefinition - utiliser OpenXML SDK 2.0 outil de productivité pour le chercher.
BuildUriPartDictionary est une méthode standard générée par OpenXML SDK 2.0 outil de productivité
protected Dictionary<String, OpenXmlPart> BuildUriPartDictionary(SpreadsheetDocument document)
{
var uriPartDictionary = new Dictionary<String, OpenXmlPart>();
var queue = new Queue<OpenXmlPartContainer>();
queue.Enqueue(document);
while (queue.Count > 0)
{
foreach (var part in queue.Dequeue().Parts.Where(part => !uriPartDictionary.Keys.Contains(part.OpenXmlPart.Uri.ToString())))
{
uriPartDictionary.Add(part.OpenXmlPart.Uri.ToString(), part.OpenXmlPart);
queue.Enqueue(part.OpenXmlPart);
}
}
return uriPartDictionary;
}
Une autre solution est de convertir votre feuille de calcul à macroenabled, intégrez-il un script VBA qui rafraîchira tous les tableaux croisés dynamiques. Cela peut se produire lorsque vous cliquez sur un bouton ou à nouveau lorsque l'utilisateur ouvre une feuille de calcul. Ici vous pouvez trouver le code VBA pour actualiser les tableaux croisés dynamiques: http://www.ozgrid.com/VBA/pivot-table-refresh.htm
En ce qui concerne les tableaux croisés dynamiques, j'ai simplement coché l'option "Actualiser les données à l'ouverture du fichier" de chaque tableau croisé dynamique. –