2016-06-13 3 views
0

В настоящее время моя проблема заключается в том, что данные отображаются, как это предполагается в файле excel, но диаграмма не отображается правильно. Я пытаюсь Метод 1: http://www.dotnetperls.com/excel. я уже смотрел на это: Excel Interop Apply Chart TemplateПопытка создать диаграмму excel в файле XLS с данными

Графики: (http://imgur.com/a/btgWT) Верхнее изображение является то, что я получаю нижнее изображение является то, что я хочу.

string tempPath = Path.GetTempPath(); 
     //C:\appdata...\LicenseCheck 
    string folderPath = string.Format(@"{0}\LicenseCheck", tempPath); 
     //The csv file with the XMAX license usage stats 
    string secondPath = string.Format(@"{0}\{1}_Report_Stats_{2}_{3}.csv", 
     folderPath, productName, lastCheckedDate.Month, lastCheckedDate.Year); 

    var application = new Application(); 
     var workbook = application.Workbooks.Open(secondPath); 
     var worksheet = workbook.Worksheets[1] as Worksheet; 
     object misValue = System.Reflection.Missing.Value; 

     // Add chart. 
     var charts = worksheet.ChartObjects() as ChartObjects; 
     var chartObject = charts.Add(60, 10, 300, 300) as ChartObject; 
     var chart = chartObject.Chart; 

     // Set chart range. 
     var range = worksheet.get_Range("A1", "C25"); 
     chart.SetSourceData(range); 

     // Set chart properties. 
     chart.ChartType = XlChartType.xlColumnClustered; 
     chart.ChartWizard 
     (
      Source: range 
      // Title: "graphTitle", 
      // CategoryTitle: "xAxis", 
      // ValueTitle: "yAxis" 
     ); 

     chartObject.Chart.ApplyChartTemplate(@"C:\\LicenseUsageStatsTemplate.crtx"); 

     // Save. 
     workbook.SaveAs("Stats.xls", XlFileFormat.xlWorkbookNormal); 
     workbook.Close(true, misValue, misValue); 
     application.Quit(); 

     releaseObject(worksheet); 
     releaseObject(workbook); 
     releaseObject(application); 
+0

Диаграмма не может быть создана в CSV-файле. Я думаю, вам нужно использовать SaveAs для сохранения файла в виде книги Excel (xlsx). –

+0

Итак, я изменил имя файла в строке 'string secondPath = string.Format (@" {0} \ {1} _Report_Stats_ {2} _ {3} .csv ", folderPath, productName, lastCheckedDate.Month, lastCheckedDate.Year); 'to' .xlsx' и interop не смогли открыть файлы xlsx. Затем я изменил его на '.xls'. Но график по-прежнему не отображается. – HelloWorld

+0

Изменение расширения не заставляет Excel сохранять файлы в другом формате. Прочитайте метод 'SaveAs' в ссылке на язык. Вы найдете параметр для настройки формата файла - используйте это. –

ответ

0

Обнаружили, что MS-офис должен быть установлен на сервере для использования Interop. Таким образом, в результате EPPlus. Это потрясающая библиотека, которая использует OfficeOpenXML.

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