用C#的chart画折线图

如何利用excel中数据在winform的chart中画曲线图(不用数据库)... 如何利用excel中数据在winform的chart中画曲线图(不用数据库) 展开
 我来答
jimmy14888888
推荐于2016-04-23 · TA获得超过1340个赞
知道小有建树答主
回答量:550
采纳率:80%
帮助的人:356万
展开全部

用OLE的方法可以满足你的条件:

我的示例:

一个在D盘的xls

using System.Data;
using System.Data.OleDb;
using System.Data.Common;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace MyForm
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
                + "D:\\a.xls" // 文件路径
                + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
            OleDbConnection OleConn = new OleDbConnection(strConn);
            OleConn.Open();
            string sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等   

            OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
            DataSet OleDsExcle = new DataSet();
            OleDaExcel.Fill(OleDsExcle, "Sheet1");
            OleConn.Close();

            Chart chart1 = new Chart();
            ChartArea care = new ChartArea();
            Legend leg = new Legend();

            Series[] ss = new Series[2]; // 因为我的示例有两个列,所以两个系列
            ss[0] = new Series("series a");
            ss[1] = new Series("series b");

            var reader = OleDsExcle.CreateDataReader();
            foreach (var item in reader)
            {
                // 把两列数据分别插入不同的series
                DbDataRecord r = item as DbDataRecord;
                for (int i = 0; i < r.FieldCount; i++)
                    ss[i].Points.AddY(r.GetDouble(i));
            }

            // 显示
            chart1.ChartAreas.Add(care);
            chart1.Legends.Add(leg);
            chart1.Series.Add(ss[0]);
            chart1.Series.Add(ss[1]);
            Controls.Add(chart1);
        }
    }
}

运行效果:

追问
你这个是直方图吧,我要画曲线图,只把Y的值给chart画不了吧
追答
除了Points.AddY,
还有Points.AddXY啊。
chart话什么是你自己控制的啊。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式