Excel批量导入数据库.doc
文本预览下载声明
系统中需要用到Excel整体导入的功能整体的核心思路如下:
1、 首先将需要导入的Excel上传至服务器
2、 为了避免文件名重复,重命名上传的Excel文件
3、 将上传的Excel文件读入DataTable中
4、 将DataTable读入数据库中
实现起来还是比较简单的,核心代码如下:
界面需要一个FileUpload控件和一个Button
界面代码:
view plain
span style=font-size:16px;using System;
using System.Data;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
string path = Server.MapPath(~/upload/);
//根据日期时间重命名文件
string fileName = DateTime.Now.ToString(yyyymmddhhMMss) + FileUpload1.FileName;
ExcelManager em = new ExcelManager(path + fileName);
FileUpload1.PostedFile.SaveAs(path + fileName);//另存文件
DataTable dtTable = em.ExecuteGetDataTable(fileName);
em.WriteToDB(studentInfo, dtTable);//导入数据库
}
}
}
/span
Excel导入数据库控制类
其中需要注意的是
1、连接Excel字符串中HDR的值表示是否有表头,YSE表示导入的EXCEL包括表头,NO反之。
2、IMEX的值有三个
当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 只能用来做“写入”用途。当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 只能用来做“读取”用途。当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 可同时支持“读取”与“写入”用途。
这里是EXCEL导入,对于EXCEL是读取操作,即IMEX=0。
view plain
span style=font-size:16px;using System.Data.OleDb;
using System.Data;
namespace WebApplication1
{
/// summary
/// excel导入数据库控制类
/// /summary
public class ExcelManager
{
//定义连接
OleDbConnection oledbConn = null;
/// summary
/// 构造函数,初始化连接,给连接赋上地址
/// /summary
/// param name=fileUrl/param
public ExcelManager(string fileUrl)
{
string strConn = Provider=Microsoft.Jet.Oledb.4.0; + data source= + fileUrl + ;Extended Properties=Excel 8.0; HDR=NO; IMEX=1;
oledbConn = new OleDbConnection(strConn);
}
/// summary
/// 连接Excel表的方法
//
显示全部