2010-11-09 28 views
0

According to MSDN, permis Excel définissant la propriété de valeurs d'une série de cartes par programmation à partir d'un tableau:Comment puis-je définir les valeurs d'une série de graphiques dans SpreadsheetGear par programme?

graphiques ("Chart1") SeriesCollection (1) .Values ​​= _ réseau (1, 3, 5, 7, 11. , 13, 17, 19)

Comment faire cela avec un graphique SpreadsheetGear? Dans mon problème particulier, se référer à une plage de cellules n'est pas réalisable. J'ai essayé de mettre les valeurs à une liste de doubles et à une chaîne du format "1, 3, 5, ..., 19". Aucun de ces moyens ne fonctionne, et SpreadsheetGear's documentation ne donne aucun exemple du format attendu.

Répondre

2

Vous pouvez utiliser une formule constituée d'un tableau de valeurs constantes pour une série de graphiques. Vous devrez formater la chaîne passée dans ISeries.Values ​​comme suit: "= {1,2,3,4}". Voici un exemple plus complet qui remplace la première série dans un graphique, en supposant que vous avez un nom de tableau « Tableau 1 » sur la feuille « Sheet1 » dans le classeur ouvert:

IWorkbook workbook = Factory.GetWorkbook(@"C:\chart.xlsx"); 
SpreadsheetGear.Charts.IChart chart = workbook.Worksheets["Sheet1"].Shapes["Chart 1"].Chart; 
ISeries series1 = chart.SeriesCollection[0]; 
series1.Values = "={10,20,30,40,50,60}"; 
workbook.Save(); 

Quelques notes supplémentaires. Pour la meilleure compatibilité avec Excel, vous devrez utiliser le format de fichier Open XML (XLSX/XLSM). Excel n'a aucun problème à lire dans le fichier ci-dessus après qu'il a été enregistré dans XLSX/XLSM. Cependant, Excel convertira cette formule en une "cache de données" statique et supprimera la formule de la série ci-dessus. SpreadsheetGear a un support limité pour ce "cache de données" (nous l'avons lu mais ne l'écris pas au format de fichier), donc en fonction de l'interaction et de l'économie que vous ferez entre SpreadsheetGear et Excel après avoir défini la série Formule ci-dessus, vous pouvez rencontrer ces limitations lors de l'ouverture de ce classeur dans SpreadsheetGear après plusieurs passages entre SpreadsheetGear et Excel. Si vous utilisez simplement ce classeur à des fins de création de rapports, vous ne devriez rencontrer aucun problème.