用C#操作Excel显示和绘图[通俗易懂]

用C#操作Excel显示和绘图[通俗易懂]在窗口Form中添加一个复合框comboBox和一个按钮button1,将按钮button1的Caption改为“Open“,如图所示:图1.界

欢迎大家来到IT世界,在知识的湖畔探索吧!

C#是一个基于.Net平台上的高级编程软件,其语法类似于VB和C++,界面友好,可视化做的也是非常好。这里,我介绍一个用C#制作操作Excel的一个小软件。

启动VS2019,新建一个C#窗口应用程序。在窗口Form中添加一个复合框comboBox和一个按钮button1,将按钮button1的Caption改为“Open“,如图所示:

用C#操作Excel显示和绘图[通俗易懂]

图1.界面设计

双击Form进入代码编写界面(这一点与VB很像),这里首先需要添加引用,点击“项目”中的“添加引用”,将“Microsoft Excel16.0 Object Library”和“Microsoft Office 16.0 Object Library”两项前的复选框勾选上。(16.0版本用于操作Office2013以上版本,如果想操作低版本,这里应该选择Microsoft Excel 11.0 Object Library和Microsoft Office 11.0 Object Library)

用C#操作Excel显示和绘图[通俗易懂]

图2 添加两项引用

在代码中添加一些Using语句,全部的Using语句如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using Excel = Microsoft.Office.Interop.Excel;

using Office = Microsoft.Office.Core;

using System.IO;

using System.Reflection;

在 private void Form1_Load的两个大括号{}中添加代码,完整代码如下:

private void Form1_Load(object sender, EventArgs e)

{

StreamReader SR= File.OpenText(@”\\10.138.4.129\抗体中试部门工作文件\2019\6月\AK2002VSTO\info.index”);

string NextLine;

while((NextLine=SR.ReadLine())!=null)

{

string Batch;

Batch = NextLine.Split(‘\t’)[0];

comboBox1.Items.Add(Batch);

}

SR.Close();

}

其中,File.OpenText后面的那个文件是一个目录文件,其以TXT格式存放了所有数据文件的文件名称(不包括路径和扩展名)。

双击button1,完成代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using Excel = Microsoft.Office.Interop.Excel;

using Office = Microsoft.Office.Core;

using System.IO;

using System.Reflection;

namespace WindowsFormsApp20190621_AK2002

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

StreamReader SR= File.OpenText(@”\\10.138.4.129\抗体中试部门工作文件\2019\6月\AK2002VSTO\info.index”);

string NextLine;

while((NextLine=SR.ReadLine())!=null)

{

string Batch;

Batch = NextLine.Split(‘\t’)[0];

comboBox1.Items.Add(Batch);

}

SR.Close();

}

private void Button1_Click(object sender, EventArgs e)

{

Excel.Application ExcelApp;

string Batch, FileName;

if (comboBox1.SelectedIndex == -1)

MessageBox.Show(“未选择批次!”);

else

{

Batch = comboBox1.Text;

FileName= @”\\10.138.4.129\抗体中试部门工作文件\2019\6月\AK2002VSTO\” + Batch + “.fp”;

ExcelApp = (Excel.Application)Marshal.GetActiveObject(“Excel.Application”);

Excel.Worksheet wst;

wst = (Excel.Worksheet)ExcelApp.ActiveSheet;

wst.UsedRange.Clear();

wst.Name = Batch;

int i, j;

i = 1;

StreamReader mySR = File.OpenText(FileName);

string NextLine;

while ((NextLine = mySR.ReadLine()) != null)

{

string[] Msg;

Msg = NextLine.Split(‘\t’);

j = 1;

foreach (string s in Msg)

{

wst.Cells[i, j] = s;

j++;

}

i++;

}

wst.Range[“I2”].Select();

Excel.ChartObjects MyChart = (Excel.ChartObjects)wst.ChartObjects(Type.Missing);

foreach (Excel.ChartObject Ch in MyChart)

Ch.Delete();

Excel.ChartObject ChOb = MyChart.Add(50, 50, 500, 300);

Excel.Chart ch = ChOb.Chart;

ch.ChartWizard(wst.Range[“B2:B13”], Excel.XlChartType.xlXYScatterLines, Type.Missing, Type.Missing, “Day”, “*10^6/mL”, Type.Missing, “生长曲线”, “Day”, “*10^6/mL”, Type.Missing);

ch.SeriesCollection(1).XValues = wst.Range[“A2:A13”];

}

}

}

}

该程序可以对任意的新建Excel实现数据操作

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18253.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信