Как программно установить значения ряда диаграмм в SpreadsheetGear?

Согласно MSDN, Excel разрешает программно устанавливать свойство Values ​​ряда диаграмм из массива:

Диаграммы ("Chart1").SeriesCollection(1). Значения = _ Массив (1, 3, 5, 7, 11, 13, 17, 19)

Как мне сделать это с диаграммой SpreadsheetGear? В моей конкретной проблеме ссылка на диапазон ячеек невозможна. Я попытался установить значения в список двойников и строку в формате "1, 3, 5, ..., 19". Ни один из этих способов не работает, и документация SpreadsheetGear не содержит примеров ожидаемого формата.

1 ответ

Решение

Вы можете использовать формулу, состоящую из массива постоянных значений для ряда диаграммы. Вам нужно будет отформатировать строку, переданную в ISeries.Values, следующим образом: "={1,2,3,4}". Вот более полный пример, который заменяет первую серию в диаграмме, при условии, что у вас есть имя диаграммы "Диаграмма 1" на листе "Лист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 после нескольких проходов между SpreadsheetGear и Excel. Если вы просто используете эту книгу для составления отчетов, у вас не должно быть никаких проблем.

Другие вопросы по тегам