asp.net导入的excel文件到数据库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Collections;
using System.Data.SqlClient;
using Budget.DBUtility;

namespace Budget.Web.Admin.RMBase.SysUser
{
    public partial class ceshi : System.Web.UI.Page
    {
        SqlConnection sqlcon;
        SqlCommand sqlcom;
        string strCon = "MyOfficeConnectionString";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
              //  bind();
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Fileupload1.HasFile)
            {
                //获取文件路径
                //string path =  Fileupload1.PostedFile.FileName;

                string path = HttpContext.Current.Request.MapPath("../upload/预算管理系统用户模板.xlsx");
                //获取文件名
                string FileName = Fileupload1.FileName;
                //根据文件结尾名判断文件格式
                if (FileName.ToLower().Substring(FileName.Length - 3) != "xls" && FileName.ToLower().Substring(FileName.Length - 4) != "xlsx")
                {
                    Response.Write("<script type=‘text/JavaScript‘>alert(‘请选择Excel文件!‘)</script>");
                    return;
                }
                //获取Excel的数据datatable
                DataTable dt = GetTable(path, FileName);

                using (SqlConnection conn = new SqlConnection("server=192.168.29.59;database=ExpenseBudget4.0Test;uid=sa;pwd=123;"))
                {
                    conn.Open();
                    SqlTransaction sqlTransaction = conn.BeginTransaction();
                    //   将事务应用于Command
                    SqlCommand sqlCommand = new SqlCommand();
                    sqlCommand.Connection = conn;
                    sqlCommand.Transaction = sqlTransaction;
                    try
                    {
                        foreach (DataRow row in dt.Rows)
                        {
                            string user_id = Guid.NewGuid().ToString().ToLower();
                            string user_code = row["工号"].ToString();
                            string user_name = row["姓名"].ToString();
                            string shouji = row["手机号/电话"].ToString();
                            string User_Account = row["登录ID"].ToString();

                           string sql= string.Format("insert into Base_UserInfo(User_ID,User_Code,User_Name,User_Account) values(‘{0}‘,‘{1}‘,‘{2}‘,‘{3}‘)", user_id, user_code, user_name, User_Account);//sql数据库
                            int a = new SqlServerHelper().RunSqlGetRowCount(sql);

                            sqlCommand.CommandText = string.Format("insert into Base_AppendPropertyInstance(PropertyInstance_ID,PropertyInstance_Key,Property_Control_ID,PropertyInstance_Value) values(NEWID(),‘{0}‘,‘{1}‘,‘{2}‘)", user_id, "User_Tel", shouji);//sql数据库

                            sqlCommand.ExecuteNonQuery();

                        }
                        //成功提交
                        sqlTransaction.Commit();
                        Response.Write("<script type=‘text/JavaScript‘>alert(‘已成功导入文件!‘)</script>");
                    }
                    catch (Exception ex)
                    {
                        //   出错回滚
                        sqlTransaction.Rollback();
                        Response.Write("<script type=‘text/JavaScript‘>alert(‘导入文件失败!‘)</script>");
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            else
            {
                Response.Write("<script type=‘text/JavaScript‘>alert(‘请选择要导入的文件!‘)</script>");
            }
        }

        //将Execl的数据读取到Datatable
        protected DataTable GetTable(string path, string fileName)
        {
            string connString = "";
            if (fileName.ToLower().IndexOf(".xlsx") < 0)
            {
                connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=‘{0}‘;Extended Properties=‘Excel 8.0;IMEX=1‘", path);
            }
            else
            {
                connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=‘{0}‘;Extended Properties=‘Excel 12.0;HDR=YES‘", path);
            }

            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString);
            string sql = "SELECT * FROM [Sheet1$]";
            DataTable dt;
            try
            {
                conn.Open();
                System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                myCommand.Fill(ds, "[Sheet1$]");
                conn.Close();
                dt = ds.Tables[0];
                GridView1.DataSource = ds;
                GridView1.DataBind();

            }
            catch (Exception err)
            {
                return null;
            }

            return dt;
        }

        //上传文件方法
        private bool Upload(FileUpload myFileUpload)
        {
            bool flag = false;
            //是否允许上载
            bool fileAllow = false;
            //设定允许上载的扩展文件名类型
            string[] allowExtensions = { ".xls", ".xlsx" };

            //取得网站根目录路径
            string path = HttpContext.Current.Request.MapPath("../upload/");
            if (myFileUpload.HasFile)
            {
                string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
                for (int i = 0; i < allowExtensions.Length; i++)
                {
                    if (fileExtension == allowExtensions[i])
                    {
                        fileAllow = true;
                    }
                }

                if (fileAllow)
                {
                    try
                    {
                        //存储文件到文件夹
                        myFileUpload.SaveAs(path + myFileUpload.FileName);
                        lblMes.Text = "文件导入成功";
                        flag = true;
                    }
                    catch (Exception ex)
                    {
                        lblMes.Text += ex.Message;
                        flag = false;
                    }
                }
                else
                {
                    lblMes.Text = "不允许上载:" + myFileUpload.PostedFile.FileName + ",只能上传xls的文件,请检查!";
                    flag = false;
                }
            }
            else
            {
                lblMes.Text = "请选择要导入的excel文件!";
                flag = false;
            }
            return flag;
        }
    }
}

  

时间: 2024-12-09 14:25:13

asp.net导入的excel文件到数据库的相关文章

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

关于导入数据到Excel中对数据库进行去重以及对导入的Excel文件进行去重

插入到数据库去重: 1.将你循环读取的List进行遍历 2.在你即将插入到数据库的方法之前获取你需要查询的数据,执行查询方法 1 devList=deviceDao.findDevice(device.getRfid()); 2 if(devList.size()>0){ 3 messageStr = "数据重复,请重新导入!"; 4 5 }else{ 6 deviceDao.save(device); 7 messageStr = "数据导入成功!"; 8

在ASP.NET Core中使用EPPlus导入出Excel文件

原文:在ASP.NET Core中使用EPPlus导入出Excel文件 这篇文章说明了如何使用EPPlus在ASP.NET Core中导入和导出.xls/.xlsx文件(Excel).在考虑使用.NET处理excel时,我们总是寻找第三方库或组件.使用Open Office Xml格式(xlsx)读取和写入Excel 2007/2010文件的最流行的.net库之一是EPPlus.这个库现在已经支持.NET Core许久了.这适用于Windows,Linux和Mac. 因此,让我们创建一个新的AS

asp.net 输出(导出) excel 文件(实用)

废话不多说直接上代码,因为文中有中间业务处理,用到的朋友需要去整改,原理: 拼写table插入数据,输出数据流即可! /// <summary> /// 商品导出Excel /// </summary> /// <returns></returns> public ActionResult ProjectToExcel() { string subjectNo = Request.Params["SNo"] ?? ""

(C#)利用Aspose.Cells组件导入导出excel文件

Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: [csharp] view plain copy print? public static System.Data.DataTable ReadExcel(String strFileName) { Workbook book = new Workbook(); book.Open(strFileName); Worksheet sheet = book.Worksheets[0]; Cells cells = 

【转】 (C#)利用Aspose.Cells组件导入导出excel文件

Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFileName) { Workbook book = new Workbook(); book.Open(strFileName); Worksheet sheet = book.Worksheets[0]; Cells cells = sheet.Cells; return cells.Export

struts2+bootstrap-fileinput+poi 实现读取excel文件到数据库

//js代码function initUpload(){ $("#uploadfile").fileinput({ language: 'zh', //设置语言 uploadUrl: $("body").attr("data-url")+"/permission/roleUpload!upload.action", //上传的地址 allowedFileExtensions: ['xls', 'xlsx'],//接收的文件后缀

关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

转载自 阿姆的博客 关于asp.net C# 导出Excel文件打开Excel文件格式与扩展名指定格式不一致的解决办法 导致“文件格式与扩展名指定格式不一致”这个问题,是因为大多数人在导出excel文件的时候,都是默认保存excel的格式, 也就是直接workbook.Save(path)或者workbook.SaveAs(path).进而忽略了SaveAs方法里面的参数.与保存excel文件格式有 关的是它第二个参数FileForMat. FileFormat 类型:System.Object

利用kettle组件导入excel文件到数据库

1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 数据库表的结构例如以下: watermark/2/text/aHR0