1. 程式人生 > >C#中操作Excel(4)—— 向Excel中插入兩種圖表以及設定圖表格式

C#中操作Excel(4)—— 向Excel中插入兩種圖表以及設定圖表格式

一、引言


        本文主要討論下向Excel中插入圖表的兩種方式。在Excel中圖表是有兩種級別的,一種是和sheet同級別的圖表,也就是說整個excel的標籤頁就是一個圖表;還有一種就是我們最常使用的在一個sheet中插入的圖表,我們姑且叫它sheet子圖表。這種圖示在原則上可以插入N個。本文就這兩種圖表,分別介紹其插入的方法。

二、插入sheet級別的圖表


        這種級別的圖示插入方法和插入一個sheet類似,我們需要依靠Workbook的Charts屬性,增加一個新的圖示使用其Add()方法:
Workbook book = app.Workbooks.Add("D:\\Test.xlsx");
Worksheet sheet = book.Worksheets[1];
Chart chart = book.Charts.Add();
        獲取到這個圖表之後,我們可以利用Chart的SetSourceData()方法設定圖表的資料來源,其接受一個Range物件作為引數,這個Range就是我們需要生產圖示的表格資料的範圍。
Range range = sheet.get_Range("B2","C4");
chart.SetSourceData(range);
        在這裡range資料的填充程式碼就不再展示,最終達到的效果如下,我們成功在excel的首頁插入一個名叫chart1的圖表:

三、插入sheet子圖表


        和Word中插入圖表的方法類似,我們可以利用sheet的Shapes屬性插入一個圖表,上文中也利用了該屬性插入了一張圖片。
Microsoft.Office.Interop.Excel.Shape shape = sheet.Shapes.AddChart();
Chart chart = shape.Chart;
        AddChart()返回的是一個Shape型別的物件,而Shape有一個屬性Chart就是我們的chart圖表,接下來設定表格的資料來源:
chart.SetSourceData(range);//按照列繪製
        最終生成如下的圖表:



四、設定圖表的格式

4.1 設定圖表的資料來源基準

        圖表的資料來源基準是指生成圖表時,是以行為資料來源(列為該資料來源資料)還是以列為資料來源(行為該資料來源資料),一般使用SetSourceData在設定圖表的資料來源時指定該基準,SetSourceData的函式原型如下:
void SetSourceData(
    Range Source,
    Object PlotBy
)
Source
型別: Microsoft.Office.Interop.Excel.Range
Range. 包含源資料的範圍。
PlotBy
型別: System.Object
指定繪製資料的方式。可以為以下XlRowCol常數之一: Excel.XlRowCol.xlColumns 或 Excel.XlRowCol.xlRows。

4.2 設定圖表的Style

    我們知道,圖表的型別有很多種,包括曲線、柱形圖等等。通過Chart的ChartType的屬性可以設定圖表的顯示風格,如下面的程式碼設定圖表的風格為曲線:   
chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;

4.3 設定圖表的橫縱座標名稱

Microsoft.Office.Interop.Excel.Axis xAxis = chart.Axes(Microsoft.Office.Interop.Excel.XlAxisType.xlCategory, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary);
Microsoft.Office.Interop.Excel.Axis yAxis = chart.Axes(Microsoft.Office.Interop.Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary);
Microsoft.Office.Interop.Excel.Axis zAxis = null;
xAxis.HasTitle = true;
xAxis.AxisTitle.Text = "X軸標題";
yAxis.HasTitle = true;
yAxis.AxisTitle.Text = "Y軸標題";

4.4 設定圖表的Title

chart.HasTitle = true;
chart.ChartTitle.Text = "圖表主Title";



Github位置:
https://github.com/HymanLiuTS/OfficeTestByC-
克隆本專案:
Git clone [email protected]:HymanLiuTS/OfficeTestByC-.git
獲取本文原始碼:
git checkout L13

相關推薦

C#操作Excel4—— Excel插入圖表以及設定圖表格式

一、引言         本文主要討論下向Excel中插入圖表的兩種方式。在Excel中圖表是有兩種級別的,一種是和sheet同級別的圖表,也就是說整個excel的標籤頁就是一個圖表;還有一種就是我們最常使用的在一個sheet中插入的圖表,我們姑且叫它sheet子圖表。這

C#操作Word8—— Word插入圖表的三方法

一、 前言         本文主要介紹向word中插入圖表的方法。方法共有三種,每一種都有自己的適用範圍和利弊。介紹之前,我們準備實驗用的文件,做一個如下圖所示的word模板,我們要做的的是在這個名叫chart的書籤中插入一個圖表,下面然後我將逐一進行介紹這三種方法:

Excel4 使用Excel去背景

在Excel插入一張圖片,然後 選擇  格式--刪除背景,會出現一個框子,讓你選擇要操作的區域,選好區域後 點 “標記要保留的區域” 出現一隻筆,在要保留的地方畫幾道直線就行。 點“標記要刪除的區域”同理。 點完後選擇保留更改就行。 注意:這種去背景只適合

c# opencvsharp學習筆記4操作畫素點,椒鹽噪聲,重對映

1.操作畫素點在這裡和c++的區別就出來了,c++對畫素點的setget用的是at函式。而c#的at函式只能用於get,set用的就是set函式,我一般直接用setget函式. // // 摘要: // Set a value to t

C#操作Word5—— 利用BookMark物件寫Word文件

一、引言         本文主要介紹通過Word中的書籤Bookmark來向Word中寫入我們自定義的資料。之前的文章介紹了利用Range物件讀寫word的方法,用這種方法如果處理比較簡單的文件還好,若文件較複雜,就顯得有些力不從心了。         比如有這麼一個文件

C#操作Word2—— 新建、開啟、儲存和關閉文件

       本文中主要介紹C#中對word文件進行新建、開啟、儲存、關閉的方法。在本次試驗之前,先佈置試驗環境。首先,先新建一個winform的工程WordTest:         然後,在介面中新增一個按鈕,按鈕文字就叫做“測試”:         在按鈕的點選事

C程序設計導引4

很多 實現 返回 第5章 沒有 i++ bool pac void 第5章 函數 5.1 函數的概念和結構   先來比較兩個概念:過程(procedure)、函數(function)。   過程與函數都是一組封裝在一起的語句,能實現特定的功能。區別在於過程只進行某種操作,而

C#復習筆記4--C#3:革新寫代碼的方式用智能的編譯器來防錯

靜態 png 字段 tom 父類 保持 int http AI 用智能的編譯器來防錯 本章的主要內容: 自動實現的屬性:編寫由字段直接支持的簡單屬性, 不再顯得臃腫不堪; 隱式類型的局部變量:根據初始值推斷類型,簡化局部變量的聲明; 對象和集合初始化程序:用一個表達式就能

C#復習筆記4--C#3:革新寫代碼的方式查詢表達式和LINQ to object

類型 否則 表達 數據集 clas 階段 邏輯 變量 RR 查詢表達式和LINQ to object(上) 本章內容: 流式處理數據和延遲執行序列 標準查詢操作符和查詢表達式轉換 範圍變量和透明標識符 投影、過濾和排序 聯接和分組 選擇要使用的語法 LINQ中的概

C#復習筆記4--C#3:革新寫代碼的方式查詢表達式和LINQ to object

標識 all 麻煩 linq with write mar sel img 查詢表達式和LINQ to object(下) 接下來我們要研究的大部分都會涉及到透明標識符 let子句和透明標識符 let子句不過是引入了一個新的範圍變量。他的值是基於其他範圍變量的。let 標識

C++對C語言的拓展4—— 函數重載

over 及其 尋求 所有 print har nbsp erro erl   函數重載(Function Overload):用同一個函數名定義不同的函數,當函數名和不同的參數搭配時函數的含義不同。 1、重載規則 (1)函數名相同; (2)參數個數不同,參數的類型不同,參

C語言學習筆記4—— 數據類型的使用

循環小數 強制類型轉換 進行 代碼 size 圖片 unsigned 問題 d+  在程序設計語言裏,我們會把數據分為各種各樣的類型,為什麽會有數據類型之分呢?計算機中,所有的數據都會表示成二進制數的形式,對於同樣的一個二進制數,數據類型不同,它表示的數據就是不同的。也就是

Python基礎4:python的特性入門篇索引,切片,連線,重複,成員操作符

在介紹列表的時候發現,有一些特性沒有提前解釋,而穿插在其中又會略顯重複和雜亂,索性在這裡來個總結。 接觸python的人不難了解到一個詞:高階特性。 其實內容並不高深,因為高階特性的產生,就是為了讓程式碼更簡介。 以下先介紹簡單的:索引,切片,連線,重複,成員操作符,以及其應用物件。 &nb

C#:執行緒4:執行緒等待

執行緒等待,或者說叫等待執行緒。其語句是  執行緒名.Join()   。按照我的理解,這個語句其實是告訴系統程式,這個執行緒很重要,你必須使用全部的計算資源供他計算,等他計算結束了之後再回到這個位置。     舉例來說,下面這個程式就用了執行緒等

從零開始學習HTML+CSS4Flex佈局的排列與換行

0.參考網址:https://www.runoob.com/w3cnote/flex-grammar.html 1.排列 預設值:橫向排列(從左邊開始排) div { display:flex;/*設定為flex佈局*/ flex-direction:row;/*這

最想知道的git操作系列4--- git 分支合併

1、切換到要合併的基礎分支      git checkout master 2、檢視所有的分支(包括遠端)      git branch -a 3、將希望合併的分支進行合併      g

jmeter介面效能測試4----提取json的資料並應用到斷言中

介面資訊如下: 執行介面後在檢視結果樹種檢視響應資料,檢視方式選擇:JSON Path Tester 我們要在json中提取如下的資料: 檢視json體的路徑關係,在JSON path Expression中輸入路徑,關注是否能得到想要的數值。如:我們想要獲取上圖中的n

Phoenix4:phoenix建立hbase的對映表

一、實現功能 phoenix對映hbase中表,從而實現快速複雜查詢與編輯。 二、步驟 1.hbase中要有對應的表,以及資料 create 'teacher','info','contact' put 'teacher','1001','info:name','Jack' put

C語言程式設計:現代方法第2版K.N.King 著》學習筆記五:C語言基本概念4

2.7 識別符號 在編寫程式時,需要對變數、函式、巨集和其他實體進行命名。這些名字稱為識別符號(identifier)。在C語言中,識別符號可以含有字母、數字和下劃線,但是必須以字母或者下劃線開頭。

我與C語言的點滴4-迴圈2

在螢幕上輸出菱形: 先將菱形分為兩部分,上半部分和下半部分。再用變數分別控制空格的輸出和星號的輸出。經計算: 上半部分的空格數=上半部分的總行數-行數 上半部分的星號數=2*上半部分的總行數-1 下半部分的空格數=(從下半部分開始計算的)行數 下半部分的星號