Excel、记事本数据导入到数据库的实现方法
Excel、记事本数据导入到数据库的实现方法
发布时间:2016-12-29 来源:查字典编辑
摘要:文件示例:Excel:记事本:前台代码:复制代码代码如下:选择文件文件示例选择文件文件示例后台代码复制代码代码如下://Excel上传pro...

文件示例:

Excel:

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

记事本:

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

前台代码:

复制代码 代码如下:

<div id="divSecond" runat="server" visible="false">

<fieldset >

<p>

<label>

选择文件</label>

<asp:FileUpload ID="FileUpload1" runat="server" /><asp:RequiredFieldValidator

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

</p>

<p>

<label>文件示例</label><img src="../images/ex_excel.jpg" />

</p>

</fieldset>

<div></div>

<div></div>

<div>

<asp:Button ID="btnExcel" runat="server" Text="提 交" CssClass="button"

/>

<input type="button" value="返 回" />

</div>

</div>

<div id="divThird" runat="server" visible="false">

<fieldset >

<p>

<label>

选择文件</label>

<asp:FileUpload ID="FileUpload2" runat="server" /> <asp:RequiredFieldValidator

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

ControlToValidate="FileUpload2"></asp:RequiredFieldValidator>

</p>

<p>

<label>文件示例</label><img src="../images/ex_txt.jpg" />

</p>

</fieldset>

<div></div>

<div></div>

<div>

<asp:Button ID="btnNotepad" runat="server" Text="提 交" CssClass="button"

/>

<input type="button" value="返 回" />

</div>

</div>

后台代码

复制代码 代码如下:

//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;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类