我正在使用Interop excel 12.0来创建图表。
我指定的yaxis数据范围从2010年7月5日开始至2011年8月29日。但图表上的Y轴从2010年12月7日开始,到2011年8月22日结束,但图表线增长从头到尾显示数据
myChart.Chart.ChartWizard(xlWorkSheet.get_Range("A1", "B62"),misValue, misValue, misValue,misValue, Excel.XlRowCol.xlColumns, false,
"Space Used Trend Report for databases DLP01P, DLP07P, DPN01P and DUV01P", "Date", "GB", misValue);
Font f = new System.Drawing.Font(FontFamily.GenericSansSerif, 10.0f);
myChart.Chart.ChartTitle.Characters.Font.Size = f.Size;
chartPage.HasTitle = true;
//Trend Line setting
//Creating a series
Excel.Series series = (Excel.Series)chartPage.SeriesCollection(1);
//Setting the series to Secondary (y) axis so as to format the same
series.AxisGroup = Excel.XlAxisGroup.xlSecondary;
//Setting the trendline type
Excel.Trendlines trendlines = (Excel.Trendlines)series.Trendlines(System.Type.Missing);
Excel.Trendline trendline = trendlines.Add(Microsoft.Office.Interop.Excel.XlTrendlineType.xlLinear, 2,
0, misValue, misValue, misValue, false, false, misValue);
//Creating a variable for yaxis and assigning the chart's y axis to the same
Excel.Axis yaxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlCategory, series.AxisGroup);
yaxis.MajorUnit = 14;
yaxis.MinorUnit = 7;
yaxis.Format.Line.BackColor.RGB = Color.Red.ToArgb();
yaxis.Format.Line.ForeColor.RGB = Color.Red.ToArgb();
yaxis.MajorUnitScale = Excel.XlTimeUnit.xlDays;
yaxis.MinorUnitScale = Excel.XlTimeUnit.xlDays;
yaxis.MinimumScaleIsAuto = false;
yaxis.MinimumScale = ?????
最小比例仅为双倍值。
答案 0 :(得分:0)
如果我理解你,这就是你要找的东西:在Excel中,日期是自1-1-1900以来的日期编号。如果你想用C#代码计算它,请记住在Excel 1900中是闰年(当然不是,但这源于与Lotus 123的兼容性!),因此7/12/2010
将是{ {1}}。
答案 1 :(得分:0)
尝试这样的事情,只需更改值
即可{
chartPrincipal.YAxis.ScaleRange.ValueHigh = 100;
chartPrincipal.YAxis.ScaleRange.ValueLow = 0;
}