您的位置:首页 > 编程语言 > C#

C#操作excel(chart)

2010-03-02 10:38 766 查看
开发excel,免不了要开发excel的chart:

代码

#region operate chart
//创建chart对象
Excel.Chart chart = m_objExcel.Charts.Add(Type.Missing, Ocuurent_sheet, Type.Missing, Type.Missing) as Excel.Chart;
//chart类型
chart.ChartType = Excel.XlChartType.xlLineMarkers;
//chart.set_HasAxis();
//设置chart对应excel的sheet里的数据矩阵范围
chartrange = Ocuurent_sheet.get_Range(Ocuurent_sheet.Cells[2, 2], Ocuurent_sheet.Cells[5, (1 + Ds_occurent.Tables[0].Columns.Count)]);
//绑定数据
//chart.SetSourceData(chartrange,Excel.XlRowCol.xlRows);

chart.HasLegend = true;
//标题
chart.HasTitle = true;
//标题名称
chart.ChartTitle.Text = "HUB occurrence";
chart.Legend.Position = Excel.XlLegendPosition.xlLegendPositionBottom;
//设置excely和x轴
Excel.Axis categoryAxis = (Excel.Axis)m_objExcel.ActiveChart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary);
categoryAxis.CategoryType = Excel.XlCategoryType.xlCategoryScale;
Excel.Series se = (Excel.Series)chart.SeriesCollection(3);
//chart颜色设置
se.Border.ColorIndex = 5;
se = (Excel.Series)chart.SeriesCollection(2);
se.Border.ColorIndex = 6;
se = (Excel.Series)chart.SeriesCollection(1);
se.Border.ColorIndex = 3;
//se.MarkerBackgroundColorIndex = 5;
//se.MarkerStyle = Excel.XlMarkerStyle.xlMarkerStyleStar;
chart.Location(Excel.XlChartLocation.xlLocationAsObject, Ocuurent_sheet.Name);
//chart位置
Ocuurent_sheet.Shapes.Item(1).IncrementTop(-116);
Ocuurent_sheet.Shapes.Item(1).IncrementLeft(-166);
float a = 0.84f;
//chart大小
Ocuurent_sheet.Shapes.Item(1).ScaleHeight(a, MsoTriState.msoFalse, MsoScaleFrom.msoScaleFromTopLeft);
#endregion


如果我们使用.net的com,那么我们可以对excel的增益集合进行录制(工具--》增益集合--》录制增益集),录制完后,我们然后打开vba编辑器,查看相应的代码。我们根据vba代码来写c#代码,进行稍微的改动就可以用了。VBA操作看这里

加上一个小东西:

我们在读excel的时候不用text二世用value2的时候,读取时间有时候会是double类型,那么我们怎么样把它转换成时间类型?DateTime.FromOADate

double转换成时间如下:

DateTime getDate = new DateTime(2009, 12, 30);
double Number = getDate.ToOADate();// convert the datetime to double

//double doubleValue = 0;
DateTime doubleDate = DateTime.FromOADate(Number);// convert the double to datetime

Console.WriteLine(Number);//0

Console.WriteLine(doubleDate.ToString());//12/30/2009 12:00:00 AM
Console.WriteLine(doubleDate.ToString("yyyyMMdd HH:mm:ss"));//20091230 00:00:00
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: