C#Winform怎么将excel一列数据导入程序中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Winform怎么将excel一列数据导入程序中相关的知识,希望对你有一定的参考价值。
比如将一列手机号码导入到后台用数组存储
我这个是导入到DataGridView希望对你有用。 private void btImport_Click(object sender, EventArgs e)try
lbmation.Visible = true;
dgvWayBill.Columns["savestatus"].Visible = false;
string strFileNamePath = string.Empty;
OpenFileDialog ofdShowDialog = new OpenFileDialog();
ofdShowDialog.FileName = "";
ofdShowDialog.Title = "请选择要导入的Excel文件,导入EXCEL文件的工作表名必须是Sheet1";
ofdShowDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
ofdShowDialog.Filter = "Excel文件(*.xls)|*.xls";
ofdShowDialog.CheckFileExists = true;
ofdShowDialog.CheckPathExists = true;
if (ofdShowDialog.ShowDialog() == DialogResult.OK)
strFileNamePath = ofdShowDialog.FileName;
if (string.IsNullOrEmpty(strFileNamePath))
MessageBox.Show("请选择要导入的文件", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
string strFileName = "Sheet1";
OleDbDataAccess odaData = new OleDbDataAccess(strFileNamePath);
DataSet dsImport = new DataSet();
dsImport = odaData.ReadExcelData(strFileName);
if (DataSetUtil.IsNull(dsImport) || DataTableUtil.IsNull(dsImport.Tables[0])) return;
DataBind(dsImport);
MessageBox.Show("导入成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
lbmation.Visible = false;
catch (Exception ex)
MessageBox.Show("导入失败,失败原因:" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
//导入数据放到DataDridView中
private void DataBind(DataSet dsImport)
//这里你想将数据放到哪个控件里去就直接将数据源设置为dsImport.table[0]就可以了。
参考技术A /// <summary>
/// 导入Excel到DataSet
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
private DataSet InExecl(string filePath)
DataSet ds = new DataSet();
string connStr = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
OleDbConnection myConn = new OleDbConnection(connStr);
string strSQL = " SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strSQL, myConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet1$]");
myConn.Close();
return myDataSet;
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnIn_Click(object sender, EventArgs e)
DataSet ds = InExecl(this.File1.PostedFile.FileName);
this.GridView2.DataSource = ds;
this.GridView2.DataBind();
参考技术B 1.连接excel
2.解析Excel中的数据(返回的是一个dataset)
3.对数据进行整理,然后赋给数组
C#winform 将excel中的数据导入到datagridview中
关于datagridview数据通过excel导入导出功能,谁那儿有源码,可以通过回答或发送到wxjmaple@去掉163.com,答案好悬赏大大的有
string message = null;string strConn = Properties.Settings.Default.connString;
if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
Response.Write("<script>alert('请您选择Excel文件')</script> ");
return;//当无文件时,返回
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (IsXls != ".xls")
Response.Write("<script>alert('只可以选择Excel文件')</script>");
return;//当选择的不是Excel文件时,返回
string filename = FileUpload1.FileName; //获取Execle文件名 DateTime日期函数
string dir = Server.MapPath("..\\temp\\" + Session["name"] + "\\");
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
string savePath = Server.MapPath(("..\\temp\\" + Session["name"]+"\\") + filename);//Server.MapPath 获得虚拟服务器相对路径
FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = ExecleDs(savePath, filename); //调用自定义方法
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (rowsnum == 0)
Response.Write("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示
else
dr[i]["XXX"].ToString(); //XXX是EXCEL里面的标题名字,这样取字段然后插入数据库
是winform啊。。应该差不多 修改一下追问
还是有很大差异的。。
参考技术A 网上搜PageOffice,有很多它的示例代码的,它能帮你解决啊。 参考技术B 微软SDK有给现成的demo源码追问能不能给个实例啊
以上是关于C#Winform怎么将excel一列数据导入程序中的主要内容,如果未能解决你的问题,请参考以下文章
C# 自己写的Winform程序批量导入Excel文件到Oracle数据库的过程中,程序运行会很慢!而且Winform窗体会卡
C#winform怎么弄出类似于excel的表格?简单点的就好