2014-11-14 5 views
0

Я ищу способ переключения между осями диаграммы, сгенерированной с помощью Syncfusion Библиотека XlsIO. Я не смог найти какое-либо решение из-за того, что библиотека была коммерческой и менее используемой, а База знаний была очень ограниченной.Переключатель Row/Column (оси переключателя) в диаграмме xlsio (syncfusion)

В принципе, я использую шаблон excel для создания новых листов и заполнения им некоторых данных. Я могу делать все, но почему-то оси не появляются так, как я хочу. Я хочу, чтобы просто сделать то, что enter image description here (кнопка переключения строки/столбца в Excel.exe) будет делать сгенерированной диаграммой, то есть оси переключения диаграммы. Или может управляться осью программно и переключаться между осью X и осью Y с кодом.

Хотя у меня есть решение, которое мы можем генерировать данные для диаграммы как Transpose того, что я в настоящее время генерирую, но, похоже, это очень важно, так как поддерживаемое приложение является живым, и практически невозможно измените ориентацию (транспонированную) данных.

Вот мой код:

IChartShapes cs = ws.Charts; // ws is the worksheet being generated 
foreach (IChart cs1 in cs) 
{ 
    string strCName = cs1.Name; 
    IRange rngs = ws.Range[cs1.Name]; //chart name and named range are the same 
    cs1.PrimaryValueAxis.Font.Size = 4; 
    cs1.PrimaryCategoryAxis.Font.Size = 4; 
    cs1.DisplayBlanksAs = ExcelChartPlotEmpty.NotPlotted; 
    cs1.DataRange = rngs; 
    IChartCategoryAxis csa = cs1.PrimaryCategoryAxis; 
    csa.CategoryLabels.WrapText = true; 
} 

Любая помощь будет оценена.

ответ

1

Получил ответ !!! Это было слишком просто. Хотя никто, кажется, не интересуется вопросом, но все же, если кто-то случается, застрял с такой проблемой, это может помочь ему/ей.

В принципе, ответ был всего лишь установкой свойства диаграммы IsSeriesInRows, то есть True по умолчанию, до False и называть это после добавления диапазона к диаграмме.

Так вот, скорректированный код.

IChartShapes cs = ws.Charts; // ws is the worksheet being generated 
foreach (IChart cs1 in cs) 
{ 
    string strCName = cs1.Name; 
    IRange rngs = ws.Range[cs1.Name]; //chart name and named range are the same 
    cs1.PrimaryValueAxis.Font.Size = 4; 
    cs1.PrimaryCategoryAxis.Font.Size = 4; 
    cs1.DisplayBlanksAs = ExcelChartPlotEmpty.NotPlotted; 
    cs1.DataRange = rngs; 

    //// Answer added here //// 
    cs1.IsSeriesInRows = false; //This tells the chart that the series are to be picked from the row itself. 

    //// Answer ends here //// 
    IChartCategoryAxis csa = cs1.PrimaryCategoryAxis; 
    csa.CategoryLabels.WrapText = true; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^