2010-11-09 19 views
0

According to MSDN,Excel中允許從陣列設定的圖表系列Values屬性編程:如何以編程方式在SpreadsheetGear中設置圖表系列的值?

圖表( 「Chart1」)的SeriesCollection(1).Values = _ 陣列(1,3,5,7,11。 ,13,17,19)

如何使用SpreadsheetGear圖表執行此操作?在我的特定問題中,提到一個單元格範圍是不可行的。我嘗試將值設置爲雙精度格式和格式「1,3,5,...,19」的字符串。這兩種方式都不起作用,並且SpreadsheetGear's documentation沒有給出預期格式的示例。

回答

2

對於圖表系列,可以使用由常數值數組組成的公式。您需要格式化傳遞給ISeries.Values的字符串,如下所示:「= {1,2,3,4}」。下面是在打開的工作簿代替了第一個系列的圖表中,假設你有一個圖表名稱「圖1」工作表「工作表Sheet1」更完整的示例:

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(); 

幾個附加說明。爲了與Excel達到最佳兼容性,您需要使用Open XML(XLSX/XLSM)文件格式。在保存在XLSX/XLSM中後,Excel在讀取上述文件時沒有問題。但是,Excel會將此係列公式轉換爲靜態「數據高速緩存」並放棄上述系列公式。 SpreadsheetGear對這個「數據緩存」的支持有限(我們閱讀它,但不要將它寫入文件格式),所以根據您在設置系列後SpreadsheetGear和Excel之間進行多少交互和保存操作上面的公式中,經過SpreadsheetGear和Excel之間的幾次傳遞後,您可能會在SpreadsheetGear中打開此工作簿時遇到這些限制。如果您只是將此工作簿用於報告目的,則不應該遇到任何問題。

相關問題