簡體   English   中英

如何以編程方式在SpreadsheetGear中設置圖表系列的值?

[英]How can I set the values of a chart series in SpreadsheetGear programmatically?

根據MSDN ,Excel允許以編程方式從數組中設置圖表系列的Values屬性:

圖表(“Chart1”)。SeriesCollection(1).Values = _ Array(1,3,5,7,11,13,17,19)

如何使用SpreadsheetGear圖表執行此操作? 在我的特定問題中,提到細胞范圍是不可行的。 我試圖將值設置為雙精度列表和格式為“1,3,5,...,19”的字符串。 這些方法都不起作用, SpreadsheetGear的文檔沒有提供預期格式的示例。

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

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)文件格式。 將Excel保存到XLSX / XLSM后,讀取上面的文件沒有問題。 但是,Excel會將這個系列公式轉換為靜態的“數據緩存”,並在上方刪除該系列公式。 SpreadsheetGear對這個“數據緩存”的支持有限(我們讀它但不寫出文件格式),所以根據你在設置系列后在SpreadsheetGear和Excel之間進行多少交互和保存上面的公式,在SpreadsheetGear和Excel之間多次傳遞后,在SpreadsheetGear中打開此工作簿時可能會遇到這些限制。 如果您只是將此工作簿用於報告目的,則不應遇到任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM