2017-02-23 26 views
2

Это мой код:C# Spire.XLS - ошибка таблицы данных (добавление ключей легенды)

using System.Drawing; 
using Spire.Xls; 
using System; 
using System.Windows.Forms.DataVisualization; 
using Spire.Xls.Charts; 

namespace XLS_Program 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 

     Workbook workbook = new Workbook(); 
     workbook.LoadFromFile(@"C:\Users\my_user\Desktop\export222.xls"); 
     Worksheet sheet = workbook.Worksheets["Chart1"]; 

     /* there was some code here, not important */ 

     chart = sheet.Charts.Add(ExcelChartType.ColumnClustered); 
     chart.DataRange = sheet.Range[range_s]; 
     chart.SeriesDataFromRange = true; 

     chart.HasDataTable = true; 
     chart.DataTable.ShowSeriesKeys = true; 

     chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90; 
     chart.Legend.Position = LegendPositionType.Right; 


     workbook.SaveToFile("Excel_Charts.xlsx",ExcelVersion.Version2010); 
     System.Diagnostics.Process.Start("Excel_Charts.xlsx"); 

    } 

} 

} 

И это прекрасно работает. Но за одним исключением. Эта линия:

chart.DataTable.ShowSeriesKeys = true; 

является cousing ошибки:

System.InvalidCastException: Unable to cast object of type 'Spire.Xls.Core.Spreadsheet.Charts.ChartDataTableXls' to type 'Spire.Xls.Charts.ChartDataTable'. 
    at Spire.Xls.Chart.get_DataTable() 
    at XLSTest.Program.Main(String[] args) in c:\Users\my_user\Documents\SharpDevelop Projects\projekt1\projekt1\Program.cs:line 81 

Я пытаюсь добавить ключи легенды к моей карте. Я думал, что эта линия может мне помочь. Вы знаете, как это исправить?

ответ

1

Попробуйте это:

(chart as Spire.Xls.Core.Spreadsheet.Shapes.XlsChartShape).DataTable.ShowSeriesKeys = true; 
+0

Это сработало. Благодарю. :) – westman379

1

Try ниже код, чтобы установить ключ легенды:

foreach (ChartSerie cs in chart.Series) 
{ 
    cs.DataPoints.DefaultDataPoint.DataLabels.HasLegendKey = true; 
} 
+0

Хм, это не сработало, извините. Но спасибо за ответ! :) – westman379