C#操作excel(chart)

來源:互聯網
上載者:User

      開發excel,免不了要開發excel的chart:

 

代碼

 1  #region operate chart
2 //建立chart對象
3   Excel.Chart chart = m_objExcel.Charts.Add(Type.Missing, Ocuurent_sheet, Type.Missing, Type.Missing) as Excel.Chart;
4 //chart類型
5   chart.ChartType = Excel.XlChartType.xlLineMarkers;
6 //chart.set_HasAxis();
7 //設定chart對應excel的sheet裡的資料矩陣範圍
8 chartrange = Ocuurent_sheet.get_Range(Ocuurent_sheet.Cells[2, 2], Ocuurent_sheet.Cells[5, (1 + Ds_occurent.Tables[0].Columns.Count)]);
9 //綁定資料
10 //chart.SetSourceData(chartrange,Excel.XlRowCol.xlRows);
11
12 chart.HasLegend = true;
13 //標題
14 chart.HasTitle = true;
15 //標題名稱
16 chart.ChartTitle.Text = "HUB occurrence";
17 chart.Legend.Position = Excel.XlLegendPosition.xlLegendPositionBottom;
18 //設定excely和x軸
19 Excel.Axis categoryAxis = (Excel.Axis)m_objExcel.ActiveChart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary);
20 categoryAxis.CategoryType = Excel.XlCategoryType.xlCategoryScale;
21 Excel.Series se = (Excel.Series)chart.SeriesCollection(3);
22 //chart顏色設定
23 se.Border.ColorIndex = 5;
24 se = (Excel.Series)chart.SeriesCollection(2);
25 se.Border.ColorIndex = 6;
26 se = (Excel.Series)chart.SeriesCollection(1);
27 se.Border.ColorIndex = 3;
28 //se.MarkerBackgroundColorIndex = 5;
29 //se.MarkerStyle = Excel.XlMarkerStyle.xlMarkerStyleStar;
30 chart.Location(Excel.XlChartLocation.xlLocationAsObject, Ocuurent_sheet.Name);
31 //chart位置
32 Ocuurent_sheet.Shapes.Item(1).IncrementTop(-116);
33 Ocuurent_sheet.Shapes.Item(1).IncrementLeft(-166);
34 float a = 0.84f;
35 //chart大小
36 Ocuurent_sheet.Shapes.Item(1).ScaleHeight(a, MsoTriState.msoFalse, MsoScaleFrom.msoScaleFromTopLeft);
37 #endregion

如果我們使用.net的com,那麼我們可以對excel的增益集合進行錄製(工具--》增益集合--》錄製增益集),錄製完後,我們然後開啟vba編輯器,查看相應的代碼。我們根據vba代碼來寫c#代碼,進行稍微的改動就可以用了。VBA操作看這裡

加上一個小東西:

我們在讀excel的時候不用text二世用value2的時候,讀取時間有時候會是double類型,那麼我們怎麼樣把它轉換成時間類型?DateTime.FromOADate

double轉換成時間如下:

 

 1 DateTime getDate = new DateTime(2009, 12, 30);
2 double Number = getDate.ToOADate();// convert the datetime to double
3
4 //double doubleValue = 0;
5 DateTime doubleDate = DateTime.FromOADate(Number);// convert the double to datetime
6
7 Console.WriteLine(Number);//0
8
9 Console.WriteLine(doubleDate.ToString());//12/30/2009 12:00:00 AM
10 Console.WriteLine(doubleDate.ToString("yyyyMMdd HH:mm:ss"));//20091230 00:00:00
11

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.