0
私の問題は現在、データがExcelファイル内にあるように見えるが、グラフが正しく表示されないということです。私は方法1を試しています:http://www.dotnetperls.com/excel。 私はすでにこの見てきました:Excel Interop Apply Chart Templateデータ付きXLSファイルにExcelチャートを作成しようとしています
チャート:(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);
チャートをCSVファイルで作成することはできません。私はSaveAsを使ってファイルをExcelワークブック(xlsx)として保存する必要があると思います。 –
私は 'string secondPath = string.Format(@" {0} \ {1} _Report_Stats_ {2} _ {3} .csv "、 folderPath、productName、lastCheckedDate.Month、lastCheckedDate.Year)のファイル名を変更しました。 'を' .xlsx'に、interopはxlsxファイルを開けませんでした。そして、それを '.xls'に変更しました。しかし、グラフはまだ表示されません。 – HelloWorld
拡張子を変更してもExcelが別のファイル形式で保存されることはありません。言語リファレンスの 'SaveAs'メソッドを読んでください。ファイルフォーマットを設定するためのパラメータがあります。 –