• C# EXCEL(.xls和.xlsx)导入到数据库


    C# EXCEL(.xls和.xlsx)导入到数据库  转(http://www.cnblogs.com/bart-cai/articles/2716555.html)

    原理:
    1.判断是否是Excel文件(xls和xlsx两种文件格式,Excel2003和Excle2007)
    2.上传Excel文件到服务器的文件夹(要在服务器设置用户ASPNET对此文件夹的读写权限)
    3.对此Excel文件进行操作(可以作为OLEdb数据源、ODBC数据源,还可以通过创建Excel.ApplicationClass)

            GridView1.DataSource = null;
            GridView1.DataBind();//先清除GridView1之前的数据绑定
            #region 显示Excel数据
            string clientFilename = FileUpload1.PostedFile.FileName.ToLower();
            string serverFilename = "";
            if (clientFilename == "")
            {
                Label1.Text = "Path and filename can't null!";
                return;
            }
            if (clientFilename.ToLower().IndexOf(".xlsx") > 0)
            {
                serverFilename = ".xlsx";
            }
            else
            {
                if (clientFilename.ToLower().IndexOf(".xls") > 0 && clientFilename.EndsWith("xls"))
                {
                    serverFilename = ".xls";
                }
                else
                {
                    Label1.Text = "Must be Excel file!";
                    return;
                }
            }
            
            serverFilename = "~/upload/" + "Test" + DateTime.Now.Year.ToString()
                + (DateTime.Now.Month > 9 ? DateTime.Now.Month.ToString() : "0" + DateTime.Now.Month.ToString())
                + (DateTime.Now.Day > 9 ? DateTime.Now.Day.ToString() : "0" + DateTime.Now.Day.ToString())
                + (DateTime.Now.Hour > 9 ? DateTime.Now.Hour.ToString() : "0" + DateTime.Now.Hour.ToString())
                + (DateTime.Now.Minute > 9 ? DateTime.Now.Minute.ToString() : "0" + DateTime.Now.Minute.ToString())
                + (DateTime.Now.Second > 9 ? DateTime.Now.Second.ToString() : "0" + DateTime.Now.Second.ToString())
                + DateTime.Now.Millisecond.ToString()+serverFilename;
            
            serverFilename = MapPath(serverFilename);
            if (File.Exists(serverFilename))
            {
                File.Delete(serverFilename);
            }
            FileUpload1.SaveAs(serverFilename);//上传文件

            string strResult = "";
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + serverFilename + "';Extended Properties='Excel 8.0;HDR=YES;'";
            DataTable dt = new DataTable();
            if (serverFilename.ToLower().IndexOf(".xlsx") > 0)
            {
                strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + serverFilename + "';Extended Properties='Excel 12.0;HDR=YES'";
            }
            if (serverFilename.ToLower().IndexOf(".xls") > 0 && serverFilename.EndsWith("xls"))
            {
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + serverFilename + "';Extended Properties='Excel 8.0;HDR=YES;'";
            }
            OleDbConnection conn = new OleDbConnection(strConn);
            try
            {
                if (conn.State.ToString() == "Closed")
                {
                    conn.Open();
                }
                OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [sheet1$]", strConn);
                adapter.Fill(dt);
                this.GridView1.DataSource = dt;
                GridView1.DataBind();
                conn.Close();
            }
            catch (Exception ee)
            {
                Label1.Text = Label1.Text + " File's content can't matched,please redo it!" + ee.Message;
                //Label1用来显示错误信息
                return;
            }

  • 相关阅读:
    重新学习MySQL数据库开篇:数据库的前世今生
    Java网络编程和NIO详解9:基于NIO的网络编程框架Netty
    测试小鲸鱼
    golang
    技术篇
    请求报文和响应报文
    编程
    测试
    PHP
    centos7.1 从源码升级安装Python3.5.2
  • 原文地址:https://www.cnblogs.com/mmbbflyer/p/5282180.html
Copyright © 2020-2023  润新知