在如今信息化的世界中,数据已经成为了企业运转的重要资源。通过将数据存储于数据库中,企业可以快捷地查找、维护和利用数据。而上传Excel文件至SQL数据库则是其中的一种常见操作。本文将以ASP.NET MVC框架为例,介绍如何实现网站上传Excel文件到SQL数据库操作。
一、创建数据库
需要创建数据库及表结构。这里以员工信息表格为例,创建一个名为“Employee”的表。表中包含姓名、性别、年龄、以及登录日期等五个字段。具体的SQL脚本如下:
“`
CREATE TABLE Employee (
ID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Gender NVARCHAR(50) NOT NULL,
Age INT NOT NULL,
Phone NVARCHAR(50) NOT NULL,
CreateDate DATETIME NOT NULL
);
“`
二、创建Model
为了便于操作数据库,我们需要创建一个Model类,即“Employee”类,用于定义表中的字段。示例代码如下:
“`csharp
public class Employee
{
//定义表中字段
public int ID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public int Age { get; set; }
public string Phone { get; set; }
public DateTime CreateDate { get; set; }
}
“`
三、创建Controller
接下来,我们需要创建一个Controller类,用于实现上传Excel文件至SQL数据库的功能。我们需要在Controller类中添加一些命名空间引用:
“`csharp
using System.Data;
using System.Data.OleDb; //用于处理Excel文件
using System.Data.SqlClient; //用于操作SQL数据库
using System.IO;
“`
然后,我们需要添加以下代码,用于接收用户上传的Excel文件:
“`csharp
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
try
{
if (file != null)
{
string fileName = Path.GetFileName(file.FileName);
string path = Path.Combine(Server.MapPath(“~/App_Data/uploads”), fileName);
file.SaveAs(path);
string conString = string.Empty;
string extension = Path.GetExtension(file.FileName);
switch (extension)
{
case “.xls”: //Excel 97-03
conString = ConfigurationManager.ConnectionStrings[“Excel03ConString”].ConnectionString;
break;
case “.xlsx”: //Excel 07
conString = ConfigurationManager.ConnectionStrings[“Excel07ConString”].ConnectionString;
break;
}
DataTable dt = new DataTable();
conString = string.Format(conString, path);
using (OleDbConnection connExcel = new OleDbConnection(conString))
{
using (OleDbCommand cmdExcel = new OleDbCommand())
{
using (OleDbDataAdapter odaExcel = new OleDbDataAdapter())
{
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dtExcelSchema.Rows[0][“TABLE_NAME”].ToString();
cmdExcel.CommandText = “SELECT * From [” + sheetName + “]”;
odaExcel.SelectCommand = cmdExcel;
odaExcel.Fill(dt);
connExcel.Close();
}
}
}
for (int i = 0; i
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[“ConString”].ToString()))
{
using (SqlCommand cmd = new SqlCommand(“INSERT INTO Employee (Name, Gender, Age, Phone, CreateDate) VALUES (@Name, @Gender, @Age, @Phone, @CreateDate)”))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue(“@Name”, dt.Rows[i][“Name”].ToString());
cmd.Parameters.AddWithValue(“@Gender”, dt.Rows[i][“Gender”].ToString());
cmd.Parameters.AddWithValue(“@Age”, dt.Rows[i][“Age”].ToString());
cmd.Parameters.AddWithValue(“@Phone”, dt.Rows[i][“Phone”].ToString());
cmd.Parameters.AddWithValue(“@CreateDate”, DateTime.Now);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
ViewBag.Message = string.Format(“{0} lines found in your file”, dt.Rows.Count);
}
else
{
ViewBag.Message = “Please select a file”;
}
}
catch (Exception ex)
{
ViewBag.Message = ex.ToString();
}
return View();
}
“`
以上代码便实现了将Excel文件中的数据批量插入至SQL数据库的功能。
四、创建视图
我们需要创建一个视图,用于上传Excel文件。示例代码如下:
“`html
@using (Html.BeginForm(“Upload”, “Home”, FormMethod.Post, new { enctype = “multipart/form-data” }))
{
@ViewBag.Message
}
“`
需要注意的是,此处的enctype属性必须设为“multipart/form-data”,否则将无法接收Excel文件。
五、
至此,我们便已经实现了网站上传Excel文件至SQL数据库的功能。通过以上方法,我们可以方便地将Excel中的数据导入至数据库中,从而快捷地管理和利用数据资源。
相关问题拓展阅读:
- asp 通过web方式将excel表的内容导入到sql数据库
asp 通过web方式将excel表的内容导入到sql数据库
我的方法是用客户端代码把EXCEL中的内容读入,放在网页中,再通过表单提交,不知道你觉得如何?
以下读EXCEL的代码仅供参考。
Set xlApp = CreateObject(“Excel.Application”) ‘创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(“c:\a.xls”) ‘打开已经存在的EXCEL工件簿文件
xlApp.Visible = True ‘设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets(“sheet1”) ‘设置活动工作表
x=xlSheet.Cells(1, 1) ‘给单元格(row,col)赋值
‘xlSheet.PrintOut ‘打印工作腊行表
xlBook.Close (True) ‘关首埋闭工作簿
xlApp.Quit ‘结束EXCEL对象
Set xlApp = Nothing ‘释放轮芹哗xlApp对象
用asp连接excel表
connstr = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”&Server.MapPath(PatnNow)&”;Extended Properties=””Excel 8.0;HDR=Yes;IMEX=1″””
读取表中内容
‘注意 表名一定要以下边这种格试 “” 书写
Sql=”Select * From “
‘=====================ASP读取EXCEL注事项===========================
‘i)将Excel97或Excel2023生成的XLS文件(book)看成一个数据库,其中的每一个工作表桥岩(sheet)看成数据库表
‘ii)ADO假设Excel中的之一行为字段名.所以你定义的范围中必须要包括之一行的内容
‘iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱肆漏动在遇到这种问题时敏雹御就会出错的。例如你的行标题名为“F1”
‘iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型,
‘你必须要保证该列的数据类型一致
网站上传excel到sql数据库吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于网站上传excel到sql数据库吗,如何实现网站上传Excel文件到SQL数据库操作?,asp 通过web方式将excel表的内容导入到sql数据库的信息别忘了在本站进行查找喔。