asp.net导入Excel表
来源:互联网 发布:央视电视直播软件 编辑:程序博客网 时间:2024/05/23 22:07
asp.net导入Excel表
一、导入Excel的界面
这个界面很简单,代码就不列出来了。
二、导入的代码
我分了两部分,第一部分是点击查看数据的代码,这个是将数据导入到DataTable里面,但是还没有导入到数据库里。这里需要注意的是当程序在服务器运行时,要先把导入的文件上传到服务器上,否则不能导入,会出现莫名奇妙的错误,为了改这个错误当初弄了好久,希望大家不要走我的弯路啊。如果是在自己的机器上就不用上穿文件。
第二部分是选择相应的表,然后将数据导入到表里面,这部分很简单。
1、
try
{
InputDataBLL input= new InputDataBLL();
this.Label1.Text= "";
if (this.FileUpload1.HasFile)
{
// string filename = this.FileUpload1.PostedFile.FileName.ToString().Trim();
DataTable inputdt= new DataTable();
int len = this.FileUpload1.FileName.ToString().Trim().Length;
string path = "~/temp/upfile/"+this.FileUpload1 .FileName .ToString ().Trim();
path= Server.MapPath(path);
this.FileUpload1.SaveAs(path); //上传文件
inputdt = input.InputExcel(path, this.FileUpload1.FileName.ToString().Trim().Substring(0, len - 4),this.TextBox1.Text.Trim ());
if (Session["inputdt"]!= null)
Session.Remove("inputdt");
Session.Add("inputdt", inputdt);
if (inputdt.Rows.Count> 0)
{
this.GridView1.DataSource= inputdt;
this.GridView1.DataBind();
}
}
else
throw new Exception("请选择导入表的路径");
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('"+ ex.Message+ "');</script>");
}
{
InputDataBLL input= new InputDataBLL();
this.Label1.Text= "";
if (this.FileUpload1.HasFile)
{
// string filename = this.FileUpload1.PostedFile.FileName.ToString().Trim();
DataTable inputdt= new DataTable();
int len = this.FileUpload1.FileName.ToString().Trim().Length;
string path = "~/temp/upfile/"+this.FileUpload1 .FileName .ToString ().Trim();
path= Server.MapPath(path);
this.FileUpload1.SaveAs(path); //上传文件
inputdt = input.InputExcel(path, this.FileUpload1.FileName.ToString().Trim().Substring(0, len - 4),this.TextBox1.Text.Trim ());
if (Session["inputdt"]!= null)
Session.Remove("inputdt");
Session.Add("inputdt", inputdt);
if (inputdt.Rows.Count> 0)
{
this.GridView1.DataSource= inputdt;
this.GridView1.DataBind();
}
}
else
throw new Exception("请选择导入表的路径");
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('"+ ex.Message+ "');</script>");
}
导入的函数
/**////<summary>
/// 导入数据到数据集中
/// </summary>
/// <param name="Path"></param>
/// <param name="TableName"></param>
/// <param name="tablename2">如果这个有就以他为表名,没有的话就以TableName</param>
/// <returns></returns>
public DataTable InputExcel(string Path,string TableName,string tablename2)
{
try
{
string strConn= "Provider=Microsoft.Jet.OLEDB.4.0;"+ "Data Source="+ Path + ";"+ "Extended Properties=Excel 8.0;";
OleDbConnection conn= new OleDbConnection(strConn);
conn.Open();
string strExcel= "";
OleDbDataAdapter myCommand= null;
if (tablename2.Length> 0&& !tablename2.Equals(string.Empty))
TableName= tablename2;
strExcel= "select * from ["+ TableName+ "$]";
myCommand= new OleDbDataAdapter(strExcel, strConn);
DataTable dt= new DataTable();
myCommand.Fill(dt);
conn.Close();
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
/// 导入数据到数据集中
/// </summary>
/// <param name="Path"></param>
/// <param name="TableName"></param>
/// <param name="tablename2">如果这个有就以他为表名,没有的话就以TableName</param>
/// <returns></returns>
public DataTable InputExcel(string Path,string TableName,string tablename2)
{
try
{
string strConn= "Provider=Microsoft.Jet.OLEDB.4.0;"+ "Data Source="+ Path + ";"+ "Extended Properties=Excel 8.0;";
OleDbConnection conn= new OleDbConnection(strConn);
conn.Open();
string strExcel= "";
OleDbDataAdapter myCommand= null;
if (tablename2.Length> 0&& !tablename2.Equals(string.Empty))
TableName= tablename2;
strExcel= "select * from ["+ TableName+ "$]";
myCommand= new OleDbDataAdapter(strExcel, strConn);
DataTable dt= new DataTable();
myCommand.Fill(dt);
conn.Close();
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
二、将数据导入到数据库里
这部分其实很简单,就是插入数据。
if (this.DropDownList1.SelectedItem.Text.ToString().Equals("Material"))//导物料
{
new StockBaseBLL().ISUserModel("物料导入", Response, Request, Server);
MaterialBLL material= new MaterialBLL();
foreach (DataRow rowin inputdt.Rows)//inputdt为刚刚从函数中返回的数据源
{
float MaterialPrice= 0.0f;
float MaterialTaxPrice= 0.0f;
float TaxRate= 0.0f;
float Moneys = 0.0f;
int temp=0;
if (row["单价"].ToString().Trim()!= "")
MaterialPrice= float.Parse(row["单价"].ToString().Trim());
if (row["含税单价"].ToString().Trim()!="")
MaterialTaxPrice=float.Parse(row["含税单价"].ToString().Trim());
if (row["税率"].ToString().Trim()!="")
TaxRate=float.Parse(row["税率"].ToString().Trim());
if (row["金额"].ToString().Trim()!="")
Moneys=float.Parse(row["金额"].ToString().Trim());
if (material.SelectMaterialsDynamic("MaterialID='"+ row["物料长代码"].ToString()+ "'","").Rows.Count<= 0)//不存在,其实可以不要,因为编号是主键,如果相同则插不进去
temp= material.InsertMaterial(row["物料长代码"].ToString(), row["物料名称"].ToString(), row["单位"].ToString().Trim(), MaterialPrice, MaterialTaxPrice, TaxRate, Moneys, 0);
else
NotIntoID+= row["物料长代码"].ToString()+",";
if (temp > 0)
index+= temp;
temp= 0;
}
}
{
new StockBaseBLL().ISUserModel("物料导入", Response, Request, Server);
MaterialBLL material= new MaterialBLL();
foreach (DataRow rowin inputdt.Rows)//inputdt为刚刚从函数中返回的数据源
{
float MaterialPrice= 0.0f;
float MaterialTaxPrice= 0.0f;
float TaxRate= 0.0f;
float Moneys = 0.0f;
int temp=0;
if (row["单价"].ToString().Trim()!= "")
MaterialPrice= float.Parse(row["单价"].ToString().Trim());
if (row["含税单价"].ToString().Trim()!="")
MaterialTaxPrice=float.Parse(row["含税单价"].ToString().Trim());
if (row["税率"].ToString().Trim()!="")
TaxRate=float.Parse(row["税率"].ToString().Trim());
if (row["金额"].ToString().Trim()!="")
Moneys=float.Parse(row["金额"].ToString().Trim());
if (material.SelectMaterialsDynamic("MaterialID='"+ row["物料长代码"].ToString()+ "'","").Rows.Count<= 0)//不存在,其实可以不要,因为编号是主键,如果相同则插不进去
temp= material.InsertMaterial(row["物料长代码"].ToString(), row["物料名称"].ToString(), row["单位"].ToString().Trim(), MaterialPrice, MaterialTaxPrice, TaxRate, Moneys, 0);
else
NotIntoID+= row["物料长代码"].ToString()+",";
if (temp > 0)
index+= temp;
temp= 0;
}
}
- asp.net导入Excel表
- asp.net导入Excel表
- ASP.NET Excel导入
- asp.net导入excel
- asp.net excel导入
- ASP.NET EXCEL导入
- 怎样导入Excel表? asp.net
- asp.net Excel导入&导出
- asp.net gridview导入excel
- asp.net Excel导入&导出
- asp.net Excel导入&导出
- asp.net导入导出EXCEL
- ASP.NET数据库导入Excel
- asp.net Excel导入&导出
- ASP.NET 导入EXCEL 总汇
- asp.net access导入Excel
- asp.net 导入 Excel 2007
- ASP.NET Excel文件导入
- XSL文档例子
- 职场新物种笔记 (未完)
- 回家前随便叨叨几句
- 文件夹选择对话框 JS实现的两种方案
- Core Data入门
- asp.net导入Excel表
- About GS
- 单片机ad采样转换
- Hadoop集群环境测试-WordCount.java-上篇
- DTD文档例子
- Image adaptor itk
- 2012蓝桥杯软件大赛决赛(火柴游戏)
- XML文档例子
- Android 后台Service : 向服务器发送心跳包