0

MSDNによると、Excelでは、配列からプログラムでグラフシリーズのValuesプロパティを設定できます。

Charts( "Chart1")。SeriesCollection(1).Values = _ Array(1、3、5、7、11、13、17、19)

SpreadsheetGearチャートでこれを行うにはどうすればよいですか?私の特定の問題では、セル範囲を参照することは実行可能ではありません。値をdoubleのリストと「1、3、5、...、19」の形式の文字列に設定しようとしました。これらの方法はどちらも機能せず、SpreadsheetGearのドキュメントには予想される形式の例が示されていません。

4

1 に答える 1

2

チャートシリーズの定数値の配列で構成される数式を使用できます。ISeries.Valuesに渡される文字列を次のようにフォーマットする必要があります:「={1,2,3,4}」。開いたブックのワークシート「Sheet1」にチャート名「Chart1」があると仮定して、チャートの最初のシリーズを置き換える、より完全な例を次に示します。

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でこのブックを開くと、これらの制限に遭遇する可能性があります。このワークブックを単にレポートの目的で使用している場合は、問題が発生することはありません。

于 2010-11-10T17:03:11.750 に答える