手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >Excel、记事本数据导入到数据库的实现方法
Excel、记事本数据导入到数据库的实现方法
摘要:文件示例: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;

}

【Excel、记事本数据导入到数据库的实现方法】相关文章:

asp.net 备份和恢复数据库的方法

用存储过程向数据库存值的具体实现

.NET 数据库连接池

用WebClient.UploadData方法上载文件数据的方法

asp.net传多个值到其它页面的具体实现

ASP.NET列出数据库活跃链接的方法

ASP.NET中 Execl导出的六种方法实例

gridview调整单元格宽度的方法

ASP.NET 页面刷新的实现方法

.Net连接Oracle数据库的实现代码

精品推荐
分类导航