1.获取DataTable

        /// <summary>
/// 查询Excel文件中的数据
/// </summary>
/// <param name="strPath">文件路径</param>
/// <param name="sheetName">工作表名</param>
/// <returns>DataTable</returns>
public DataTable getExcel(string strPath,string sheetName)
{
string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = '" + strPath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
        //连接串, HDR=yes 表示excel第一行是标题行,反之表示第一行不是标题行
OleDbConnection cnnxls = new OleDbConnection(mystring);
cnnxls.Open();
OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [" + sheetName + "]", cnnxls);//查询工作表中的数据
DataSet ds = new DataSet();
myDa.Fill(ds, "[" + sheetName + "]");
cnnxls.Close();
DataTable dt = ds.Tables[];
return dt;
}

2.点击按钮函数,将数据存入数据库

        /// <summary>
/// 把Excel中的数据保存到sql数据库中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (LaValue.Text.Length >)
{
Helper.ExcelHelper eh = new Helper.ExcelHelper();//公共方法类对象,封装Excel操作的方法
DataTable dt = eh.getExcel(LaValue.Text, DropDownList1.Text.ToString());//得到Datatable
DataRow[] dr = dt.Select();//得到
int rowsnum = dt.Rows.Count;//表中数据行数
List<String> lstMsg = new List<string>();//保存失败信息
if (rowsnum == )
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "a", "alert('Excel表为空表,无数据!');", true);
} else
{
String error = "";
for (int i = ; i < dr.Length; i++)//循环插入数据
{
// excel列名不能变
string C_OraName = dr[i]["CompanyName"].ToString();
string C_Town = dr[i]["Town"].ToString();
string C_Trding = dr[i]["Trading"].ToString();
string C_PostCode = dr[i]["PostCode"].ToString();
string C_Phone = dr[i]["Phone"].ToString(); if (String.IsNullOrEmpty(C_OraName))
{
error += "公司名不能为空 ";
}
if (error.Equals("")) //
{
Model.Model_Companey company_model = new Model.Model_Companey();
BLL.BLL_Companey company_bll = new BLL.BLL_Companey();
company_model.C_OraName = C_OraName;
company_model.C_Town = C_Town;
company_model.C_Trding = C_Trding;
company_model.C_Postcode = C_PostCode;
company_model.C_Phone = C_Phone;
// 公司名之前未出现过
if (Helper.SQLHelper.SqlContains(C_OraName, "Companey", "C_OraName") == false)
{
company_bll.Add(company_model);//添加数据
}
else
{
error = C_OraName + "已存在";
lstMsg.Add("未导入成功," + "原因:" + error + "。");//保存错误信息
error = "";
}
}
else
{
}
}
this.txtMessageList.Items.Add("导入完成。");
if (null != lstMsg)
{
this.txtMessageList.Items.Add("共有" + lstMsg.Count() + "条记录未成功。<br /><br />");
foreach (string s in lstMsg)
{
this.txtMessageList.Items.Add(s);
}
}
}
}
}

3.将工作表名放入DropDownList控件中以作选择

        /// <summary>
/// 把工作表名绑定到DropDownList控件中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnup_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string ext = System.IO.Path.GetExtension(FileUpload1.FileName);//获取文件后缀
if (ext.ToLower() != ".xls" && ext.ToLower() != ".xlsx")
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "a", "alert('请选择一个Excel文件!');", true);
return;
}
HttpFileCollection files = HttpContext.Current.Request.Files;//获取页面上所有的FileUpload控件
string tmp = files[].FileName;
string savePath = "e:/test/" + DateTime.Now.ToString("yymmdd") + ".xls";//保存路径
LaValue.Text = savePath; //保存路径到一个不可见的Label控件中
FileUpload1.SaveAs(savePath);//保存文件
DropdownListBind(savePath);//绑定DropDownList
}
}

4.绑定DropDownList函数

        /// <summary>
/// 绑定DropDownList
/// </summary>
/// <param name="savePath">路径</param>
protected void DropdownListBind(string savePath)
{
string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = '" + savePath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";//连接Excel串
OleDbConnection cnnxls = new OleDbConnection(mystring);//创建连接
cnnxls.Open();
DataSet ds = new DataSet();
DataTable dt = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });//获取工作表名
DropDownList1.DataSource = dt;
foreach (DataRow dr in dt.Rows)
{
DropDownList1.Items.Add((String)dr["TABLE_NAME"]);//向控件中添加工作表名
}
cnnxls.Close();
}

Excel文件数据保存到SQL中的更多相关文章

  1. 1.scrapy爬取的数据保存到es中

    先建立es的mapping,也就是建立在es中建立一个空的Index,代码如下:执行后就会在es建lagou 这个index.     from datetime import datetime fr ...

  2. 将爬取的数据保存到mysql中

    为了把数据保存到mysql费了很多周折,早上再来折腾,终于折腾好了 安装数据库 1.pip install pymysql(根据版本来装) 2.创建数据 打开终端 键入mysql -u root -p ...

  3. c# 抓取和解析网页,并将table数据保存到datatable中(其他格式也可以,自己去修改)

    使用HtmlAgilityPack 基础请参考这篇博客:https://www.cnblogs.com/fishyues/p/10232822.html 下面是根据抓取的页面string 来解析并保存 ...

  4. Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。

    maven使用: <!--redis jar包--> <dependency> <groupId>redis.clients</groupId> < ...

  5. vue下载和上传excle数据文件,解析excel文件数据并存在数据库中

    下载: VUE: window.open("xxxx/downloadOldTaskDataFile.do_", "_blank"); JAVA: /** * ...

  6. 将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...

  7. Python将数据保存到CSV中

    #coding:utf-8import csv headers = ['ID','UserName','Password','Age','Country'] rows = [(1001,'qiye', ...

  8. Python爬虫数据保存到MongoDB中

    MongoDB是一款由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储方式类似于JSON对象,它的字段值可以是其它文档或数组,但其数据类型只能是String文本型. ...

  9. 在scrapy中将数据保存到mongodb中

    利用item pipeline可以实现将数据存入数据库的操作,可以创建一个关于数据库的item pipeline 需要在类属性中定义两个常量 DB_URL:数据库的URL地址 DB_NAME:数据库的 ...

随机推荐

  1. 通过 iTextSharp 实现PDF 审核盖章

    最近需要做一个PDF自动审核盖章的工作,其实就是读取PDF,然后再最后一页加入一个审核章印图片上去.看起来很简单,不过在开发过程中,还是遇到了一些问题,在这里记录一下. 主要遇到的问题是页面的旋转 和 ...

  2. BNUOJ34990--Justice String (exkmp求最长公共前缀)

    Justice String Given two strings A and B, your task is to find a substring of A called justice strin ...

  3. HDU5107---K-short Problem (线段树区间 合并、第k大)

    题意:二维平面上 N 个高度为 Hi 建筑物,M次询问,每次询问输出 位于坐标(x ,y)左下角(也就是xi <= x && yi <= y)的建筑物中的第k高的建筑物的高 ...

  4. Codeforces 460 DE 两道题

    D Little Victor and Set 题目链接 构造的好题.表示是看了题解才会做的. 假如[l,r]长度不超过4,直接暴力就行了. 假如[l,r]长度大于等于5,那么如果k = 1,显然答案 ...

  5. http soap关系

    http:是一个客户端和服务器端请求和应答的标准(TCP).http协议其目的是为了提供一种发布和接收htttp页面的方法 一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个 ...

  6. URAL 1244

    题目大意:给出一个正整数M,给出N个正整数ai,让你在这些数中挑出一些数组成M的一个划分,如果符合条件的划分数超过两个,输出:-1,如果没有输出:0,如果有且仅有一个:则按顺序输出剩下的数的序号. 例 ...

  7. WingIDE注册破解方法

    WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 1. WingIDE 5下 ...

  8. MYSQL数据备份与还原学习笔记

    数据备份与还原   1.mysqldump 1.1 文件地址: E:\xampp\mysql\bin 文件名:mysqldump.exe CMD下进入mysqldump.exe cd E:\xampp ...

  9. Jmeter命令行运行实例讲解

    1. 简介 使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资 本文介绍windows下以命令行模式运行的方法. 1.1. 命令介绍 jmeter -n -t & ...

  10. 关于IE8导航串行的问题

    1.概述: 作为一个前端人员,多浏览器兼容是必须必备的技能,现在一般要求是兼容IE8及以上,如果兼容IE6的话,会麻烦一些,这里介绍的是在IE8状态下我们导航条错位的问题. 2.导航错位代码 < ...