回到目錄
圖表在一個系統中是必須的,MVC架構把它當然是一個擴充內建了進來,通過簡單的幾句話就可以生成一個風格多樣的圖表,這給報表的開發帶來了很大的友善,大叔的項目中也做了一個測試,把主要的代碼貼出來,和大家分享一下。
首先一個Action,傳回你需要的圖表
public void Chart(string type = "Column")
{
new Chart(width: 600, height: 400, theme: ChartTheme.Green)
.AddTitle("人員流動情況")
.AddSeries(name: "Employee"
, chartType: type//Column,Pie
, xValue: new[] { "一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份" }
, yValues: new[] { "2", "6", "4", "5", "3", "4", "9", "2", "5" })
.Write();
}
代碼中的cartType表示圖表的類型,一般也就是Column(柱狀),Pie(餅狀),Range(範圍)等等。
幾種常用的圖表截圖
柱形
餅形
範圍
如果你希望将資料庫的資料生成圖表,需要将名稱字段和統計字段放到一個匿名的IEnumerable<T>集合裡,例如
/// <summary>
/// 通過資料生成圖表
/// </summary>
/// <param name="type"></param>
public void DataChart(string type)
{
var total = productList.Select(i => new
{
Name = i.Name,
Price = i.UnitPrice
}).ToList();//必須要ToList()操作
new Chart(width: 600, height: 400, theme: ChartTheme.Green)
.AddTitle("人員流動情況")
.AddSeries(name: "Employee"
, chartType: string.IsNullOrWhiteSpace(type) ? "Column" : type)//Column,Pie,Range,Stock,Point,Area
.DataBindTable(total, "Name")
.Write();
}
結果如下
當然如果你要設計多元度報表,你需要讓你的IEnumerable<T>對象存在多個元素即可,也就是說,它裡面的元素除了一個"X-Field",其它的都是次元字段,是以要根據情況去使用。
而如果各位還需要其它的圖表類型,還可以參數下拉的參數清單
說明 | |
---|---|
Area | 面積圖類型。 |
Bar | 條形圖類型。 |
BoxPlot | 盒須圖類型。 |
Bubble | 氣泡圖類型。 |
Candlestick | K 線圖類型。 |
Column | 柱形圖類型。 |
Doughnut | 圓環圖類型。 |
ErrorBar | 誤差條形圖類型。 |
FastLine | 快速掃描線圖類型。 |
FastPoint | 快速點圖類型。 |
Funnel | 漏鬥圖類型。 |
Kagi | 卡吉圖類型。 |
Line | 折線圖類型。 |
Pie | 餅圖類型。 |
Point | 點圖類型。 |
PointAndFigure | 點數圖類型。 |
Polar | 極坐标圖類型。 |
Pyramid | 棱錐圖類型。 |
Radar | 雷達圖類型。 |
Range | 範圍圖類型。 |
RangeBar | 範圍條形圖類型。 |
RangeColumn | 範圍柱形圖類型。 |
Renko | 磚形圖類型。 |
Spline | 樣條圖類型。 |
SplineArea | 樣條面積圖類型。 |
SplineRange | 樣條範圍圖類型。 |
StackedArea | 堆積面積圖類型。 |
StackedArea100 | 百分比堆積面積圖類型。 |
StackedBar | 堆積條形圖類型。 |
StackedBar100 | 百分比堆積條形圖類型。 |
StackedColumn | 堆積柱形圖類型。 |
StackedColumn100 | 百分比堆積柱形圖類型。 |
StepLine | 階梯線圖類型。 |
Stock | 股價圖類型。 |
ThreeLineBreak | 新三值圖類型。 |
感謝各位的閱讀!
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!
