当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

Excel、记事本数据导入到数据库的实现方法

减小字体 增大字体 作者:     来源:asp编程网  发布时间:2018-12-30 7:44:04

文件示例:
Excel:

记事本:

前台代码:

复制代码 代码如下:


 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ID="RequiredFieldValidator1" runat="server" ErrorMessage="请选择要提交的Excel文件" ControlToValidate="FileUpload1">
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ID="RequiredFieldValidator2" runat="server" ErrorMessage="请选择要提交的tTXT文件"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ControlToValidate="FileUpload2">
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 


后台代码
复制代码 代码如下:

//Excel上传
 
 
 
 
 
 
 
protected void btnExcel_Click(object sender, EventArgs e)
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
string backStr= UploadFile(FileUpload1, "Excel",1)

 
 
 
 
 
 
 
 
 
 
 
 
 
if (backStr == "-1")
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//这里是放返回消息的,改为对应放消息的方式就行了,Js这个类就不上传了
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page,"请选择要提交的Excel文件")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return

 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
else if (backStr == "-2")
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page, "请选择.xls或.xlsx类型文件")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return

 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
else
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string url = backStr
 
 
//绝对路径
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DataTable dt = ExcelToDataSet(url)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (dt.Rows.Count > 0)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
for (int i = 0
i < dt.Rows.Count
i++)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//读取每行数据 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string phoneNum= dt.Rows[i][0].ToString()
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
else
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page, "文件内容为空")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
File.Delete(url)
 
//删除上传的文件
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
//记事本上传
 
 
 
 
 
 
 
protected void btnNotepad_Click(object sender, EventArgs e)
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
string backStr = UploadFile(FileUpload2, "TXT",2)

 
 
 
 
 
 
 
 
 
 
 
if (backStr == "-1")
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page, "请选择要提交的TXT文件")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return

 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
else if (backStr == "-2")
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page, "请选择.txt类型文件")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return

 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
else
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string url = backStr
 
 
//绝对路径
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DataTable dt = ReadTXT(url)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (dt.Rows.Count > 0)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
for (int i = 0
i < dt.Rows.Count
i++)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//读取每行数据 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string phoneNum= dt.Rows[i][0].ToString()
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
else
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Js.ShowSureMsgBox(this.Page, "文件内容为空")

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
File.Delete(url)
 
//删除上传的文件
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
}

 
 
 
 
 
 
 
//上传文件
 
 
 
 
 
 
 
public string UploadFile(FileUpload FileUploadName, string varfilename,int type)
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (FileUploadName.HasFile)//判断是否有上传文件
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string fileExtension = System.IO.Path.GetExtension(FileUploadName.FileName).ToLower()
//获取文件的后缀名
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (type == 1)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (fileExtension != ".xls" && fileExtension != ".xlsx")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return "-2"

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (type == 2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (fileExtension != ".txt")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return "-2"

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string fpath = System.Web.HttpContext.Current.Server.MapPath("/Manager/Uploadfiles/" + varfilename + "/")
//图片存储文件夹路径,需要按照不同的需要进行相应的修改
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (!Directory.Exists(fpath))//查看存储路径的文件是否存在
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Directory.CreateDirectory(fpath)
 
 
//创建文件夹,并上传文件
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string time = DateTime.Now.ToString("yyyyMMddhhmmssfff")
//使用时间定义上传图片的名字
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string picturename = time + fileExtension

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
string newFilePath = fpath + picturename
//文件保存路径
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FileUploadName.SaveAs(newFilePath)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return newFilePath
 
 
//绝对路径

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
else
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
return "-1"
 
 
//没有文件
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
//读取Excel数据
 
 
 
 
 
 
 
 
public DataTable ExcelToDataSet(string filename)
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0
Data Source = " + filename + "
Extended Properties=Excel 8.0"

 
 
 
 
 
 
 
 
 
 
 
OleDbConnection conn = new OleDbConnection(strCon)

 
 
 
 
 
 
 
 
 
 
 
conn.Open()

 
 
 
 
 
 
 
 
 
 
 
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
 
 
 
 
 
 
 
 
 
 
 
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]
{ null, null, null, "Table" })

 
 
 
 
 
 
 
 
 
 
 
//包含excel中表名的字符串数组
 
 
 
 
 
 
 
 
 
 
 
string[] strTableNames = new string[dtSheetName.Rows.Count]

 
 
 
 
 
 
 
 
 
 
 
for (int k = 0
k < dtSheetName.Rows.Count
k++)
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString()

 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
OleDbDataAdapter myCommand = null

 
 
 
 
 
 
 
 
 
 
 
DataTable dt = new DataTable()

 
 
 
 
 
 
 
 
 
 
 
//从指定的表明查询数据,可先把所有表明列出来供用户选择
 
 
 
 
 
 
 
 
 
 
 
string strExcel = "select * from [" + strTableNames[0] + "]"

 
 
 
 
 
 
 
 
 
 
 
myCommand = new OleDbDataAdapter(strExcel, strCon)

 
 
 
 
 
 
 
 
 
 
 
myCommand.Fill(dt)

 
 
 
 
 
 
 
 
 
 
 
conn.Close()

 
 
 
 
 
 
 
 
 
 
 
return dt

 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
//读取记事本数据
 
 
 
 
 
 
 
 
public DataTable ReadTXT(string dirTXT)
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
StreamReader objReader = new StreamReader(dirTXT)

 
 
 
 
 
 
 
 
 
 
 
 
System.Data.DataTable dt = new System.Data.DataTable()

 
 
 
 
 
 
 
 
 
 
 
 
dt.Columns.Add("DN", System.Type.GetType("System.String"))

 
 
 
 
 
 
 
 
 
 
 
 
string sLine = ""

 
 
 
 
 
 
 
 
 
 
 
 
while (sLine != null)
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sLine = objReader.ReadLine()

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (sLine != null && !sLine.Equals(""))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DataRow dr = dt.NewRow()

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dr[0] = sLine

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dt.Rows.Add(dr)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
 
 
objReader.Close()

 
 
 
 
 
 
 
 
 
 
 
 
return dt

 
 
 
 
 
 
 
 
}


Excel、记事本数据导入到数据库的实现方法