NPOI導出餅圖到Excel

NPOI是一個很強大的第三方類庫(自己是POI[java類庫]改過來的.net版本),其餘介紹本身去百度。這篇文章主要是最近有個需求,須要將餅圖導入到Excel中,這裏提供兩種解決方案(其實應該有三種)。java

第一種:將圖片寫入到Excel中測試

  這種方式,須要本身先在代碼中生成餅圖,而後將圖片寫入到Excel中。.net

  

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Drawing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int[] data = { 100,200,300,460};
Color[] colors={Color.Green,Color.Blue,Color.Yellow,Color.Tomato};
Bitmap bm = new Bitmap(400,400);
Graphics g = Graphics.FromImage(bm);
g.Clear(Color.White);
g.DrawString("餅圖測試",new Font("宋體",16),Brushes.Red,new PointF(5,5));
float totalValue = 0;
foreach (int i in data)
{
totalValue += i;
}
float sweepAngle = 0;
float startAngle = 0;
int index=0;
float x = 50f;
float y = 50f;
float width = 200f;
foreach (int i in data)
{
sweepAngle=i/totalValue*360;
g.FillPie(new SolidBrush(colors[index++]),x,y,width,width,startAngle,sweepAngle);
//g.DrawPie(Pens.Black,x,y,width,width,startAngle,sweepAngle); //加邊線代碼
startAngle += sweepAngle;
}
bm.Save(Response.OutputStream,ImageFormat.Jpeg);
g.Dispose();
}
}
//g.DrawPie(Pens.Black,x,y,width,width,startAngle,sweepAngle);給餅圖加邊線

  

第二種:用Excel模板導出orm

  第二種方式須要本身先手動建立一個帶Excel文檔,裏面插入一個圖表,定義好數據源,根據傳入的數據源,Excel自動生成餅圖。blog

第三種:NPOI自己自帶生成圖表的類庫,是能夠自定義生成的,可是APi很差查,這種方法爭取後續補上。圖片

相關文章
相關標籤/搜索