When switching row/column on an excel chart using C#,
I read the following,
Excel.ChartObject.SetSourceData(chartRange, Excel.xlRowCol.xlRows);
When I want to do the same thing using spire.xls, how can I do it ?
Workbook workbook = new Workbook();
workbook.LoadFromFile("chartAxis.xlsx");
Worksheet sheet = workbook.Worksheets[0];
Worksheet temp = workbook.Worksheets.Add("temp");
CellRange range = sheet.Charts[0].DataRange;
int rowStr = range.Row;
int colStr = range.Column;
int lastRow = range.LastRow;
int lastCol = range.LastColumn;
for (int i = rowStr; i <= lastRow; i++)
{
for (int j = colStr; j <= lastCol; j++)
{
if (!sheet.Range[i, j].HasFormula)
{
sheet.Copy(sheet.Range[i, j], temp.Range[j, i], true);
}
else
{
temp.Range[j, i].Value2 = sheet.Range[i, j].FormulaValue;
}
}
}
Chart chart = sheet.Charts[0];
int height = range.Rows.Length;
int width = range.Columns.Length;
chart.DataRange = temp.Range[rowStr-1,colStr-1,rowStr+width,colStr+height];
temp.Visibility = WorksheetVisibility.Hidden;
workbook.SaveToFile("result.xlsx");