思路:先上传XLS文件,然后用OleDB连接Excel文件,将Excel数据导入Dataset,再将Dataset数据导入数据库。
以下是主调入过程
stringfilename=string.Empty;
try


{
filename=UpdateXls(this.FileExcel);//上传XLS文件
ImportXlsToData(filename);//将XLS文件内容导入
//删除文件
if(filename!=string.Empty&&File.Exists(filename))


{
File.Delete(filename);//删除上传的文件
}
}
catch(Exceptionex)


{
this.WriteErrorXML(ex);//出错处理
this.lblMessage.Text=ex.Message;//错误显示
}
finally


{
//重新加载页面
LoadData();
}
以下是各个主要的函数。
其中ImportXlsToData是使用OleDb链接Excel文件并将其数据导入Dataset中;
UpdateXls是上传Xls文件(其实应该写成UpLoadXls......-_-!);
AddDatasetToSQL是将Dataset导入数据库,其中Save函数是插入一行记录(这里没有给出该函数)。


/**////<summary>
///从Excel提取数据--》Dataset
///</summary>
///<paramname="filename">Excel文件路径名</param>
privatevoidImportXlsToData(stringfileName)


{
try


{
if(fileName==string.Empty)


{
thrownewArgumentNullException("上传文件失败!");
}
//
stringoleDBConnString=String.Empty;
oleDBConnString="Provider=Microsoft.Jet.OLEDB.4.0;";
oleDBConnString+="DataSource=";
oleDBConnString+=fileName;
oleDBConnString+=";ExtendedProperties=Excel8.0;";
//
OleDbConnectionoleDBConn=null;
OleDbDataAdapteroleAdMaster=null;
DataTablem_tableName=newDataTable();
DataSetds=newDataSet();

oleDBConn=newOleDbConnection(oleDBConnString);
oleDBConn.Open();
m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);

if(m_tableName!=null&&m_tableName.Rows.Count>0)


{

m_tableName.TableName=m_tableName.Rows[0]["TABLE_NAME"].ToString();

}
stringsqlMaster;
sqlMaster="SELECT*FROM["+m_tableName.TableName+"]";
oleAdMaster=newOleDbDataAdapter(sqlMaster,oleDBConn);
oleAdMaster.Fill(ds,"m_tableName");
oleAdMaster.Dispose();
oleDBConn.Close();
oleDBConn.Dispose();

//测试是否提取数据
//this.Datagrid1.DataSource=ds.Tables["m_tableName"];
//this.Datagrid1.DataBind();
//将Dataset中数据导入SQL
AddDatasetToSQL(ds);

}
catch(Exceptionex)


{
throwex;
}
}

//上传Excel文件
privatestringUpdateXls(System.Web.UI.HtmlControls.HtmlInputFileinputfile)


{
stringorifilename=string.Empty;
stringuploadfilepath=string.Empty;
stringmodifyfilename=string.Empty;
stringfileExtend="";//文件扩展名
intfileSize=0;//文件大小
try


{
if(inputfile.Value!=string.Empty)


{
//得到文件的大小
fileSize=inputfile.PostedFile.ContentLength;
if(fileSize==0)


{
thrownewException("找不到该文件!");
}
//得到扩展名
fileExtend=inputfile.Value.Substring(inputfile.Value.LastIndexOf(".")+1);
if(fileExtend.ToLower()!="xls")


{
thrownewException("请确认您所导入的文件是否EXCEL文件!!");
}
//路径
uploadfilepath=System.Web.HttpContext.Current.Server.MapPath(".")+path;
//新文件名
modifyfilename=DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()
+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString()
+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString()
+DateTime.Now.Millisecond.ToString();
modifyfilename+="."+inputfile.Value.Substring(inputfile.Value.LastIndexOf(".")+1);
//判断是否有该目录
System.IO.DirectoryInfodir=newSystem.IO.DirectoryInfo(uploadfilepath);
if(!dir.Exists)


{
dir.Create();
}
orifilename=uploadfilepath+modifyfilename;
//如果存在,删除文件
if(File.Exists(orifilename))


{
File.Delete(orifilename);
}
//上传文件
inputfile.PostedFile.SaveAs(orifilename);
}
else


{
thrownewException("没有选择Excel文件!");
}
}
catch(Exceptionex)


{
throwex;
}
returnorifilename;
}

//将Dataset的内容导入SQL
privateboolAddDatasetToSQL(DataSetpds)


{
intic,ir;
ic=pds.Tables[0].Columns.Count;
if(pds.Tables[0].Columns.Count<7)


{
thrownewException("导入Excel格式错误!Excel只有"+ic.ToString()+"列");
}
ir=pds.Tables[0].Rows.Count;
if(pds!=null&&pds.Tables[0].Rows.Count>0)


{
for(inti=0;i<pds.Tables[0].Rows.Count;i++)


{
Save(pds.Tables[0].Rows[i][0].ToString(),pds.Tables[0].Rows[i][1].ToString(),
pds.Tables[0].Rows[i][2].ToString(),pds.Tables[0].Rows[i][3].ToString(),
pds.Tables[0].Rows[i][4].ToString(),pds.Tables[0].Rows[i][5].ToString(),
pds.Tables[0].Rows[i][6].ToString());
}
}
else


{
thrownewException("导入数据为空!");
}
returntrue;
}
分享到:
相关推荐
在ASP.NET和C#开发中,处理Excel文件是一项常见的任务,比如从Excel文件中导入数据到数据库,或者将数据库中的数据导出到Excel文件供用户下载。标题"Excel 导入导出 (asp.net/c#)"所涉及的核心知识点主要包括Excel...
在ASP.NET/C#开发环境中,有时我们需要处理Excel文件,例如将数据库中的数据导出到预设的Excel模板中。在这种情况下,NPOI是一个非常有用的库,它允许开发者读写Microsoft Office格式的文件,包括Excel的.xlsx和.xls...
在ASP.NET开发中,将Excel文件导入数据库是一项常见的任务,特别是在数据处理和分析场景下。以下是对这个主题的详细说明: 1. **Excel文件读取**:首先,我们需要使用一个库来读取Excel文件。在.NET框架中,可以...
ASP.NET 编程知识 - C# 将 Excel 数据导入到数据库的实现代码 本文主要讲解了使用 C# 将 Excel 数据导入到数据库的实现代码,涵盖了 ASP.NET 编程知识、C# 语言、数据库和软件/插件等相关知识点。 一、ASP.NET ...
在C# ASP.NET开发中,导入和导出Excel文件是一项常见的需求,这通常涉及到与数据库交互,以便将数据从数据库导出到Excel表格或者从Excel表格导入到数据库中。本项目提供了一个完整的实例代码,可以帮助开发者快速...
在ASP.NET平台上,使用C#语言将Excel数据导入到网页是一项常见的需求,这通常涉及到数据的读取、处理以及在Web界面展示。本教程将详细讲解如何实现这一过程。 首先,你需要了解C#中用于读取Excel文件的库。.NET框架...
《高校科研管理系统ASP.NET+C#+SQL 2000实现》是一个综合性的IT项目,它主要针对高等教育机构的科研管理工作,旨在提升科研管理的效率和规范性。该系统结合了Web开发技术、后端编程语言以及关系型数据库管理,构建了...
在ASP.NET中,将Excel文件导入到SQL Server数据库是一项常见的数据操作任务,尤其适用于大量数据的批量处理。本文将详细讲解这一过程中的关键步骤、所用技术以及注意事项。 首先,你需要确保你有以下的开发环境: 1...
在ASP.NET中,将Excel数据导入数据库是一项常见的需求,它能极大地提高数据处理效率,减少人工操作的时间和错误。下面我们将详细探讨这个过程中的关键知识点。 首先,我们需要了解ASP.NET的基本概念。ASP.NET是由...
本文将详细讲解如何通过C#实现这一功能,并在ASP.NET环境中搭建一个用户界面,允许用户上传Excel文件并将其内容插入到数据库。 首先,我们需要处理Excel文件。在C#中,我们可以使用`Microsoft.Office.Interop.Excel...
在我们的实践开发中我们经常会遇到很多关于报表问题的数据展示,当然了有报表肯定是少不了数据的导出和导入的一些功能的啦,我这个demo就是专门使用nopi第三方库对excel的数据批量导入和数据导出的相关功能实现。
在ASP.NET(C#)开发中,导入和导出Excel是一项常见的功能需求,它涉及到Web应用程序与Microsoft Excel数据的交互。这个主题涵盖了多个知识点,包括文件流处理、数据序列化、Excel对象模型的理解以及如何利用C#语言...
综上所述,将ASP.NET(C#)与Excel和SQL Server 2005结合,实现数据导入,需要掌握文件操作、数据处理、数据库连接和数据导入的相关知识。理解并熟练运用这些技术,能有效提高项目开发效率,同时保证数据迁移的准确性...
在C# ASP.NET MVC框架中,Excel的导入...这个Demo不仅展示了Excel导入导出的基本流程,还涵盖了文件上传、数据库操作等常见功能。通过学习和理解这个Demo,开发者可以掌握在ASP.NET MVC项目中处理Excel文件的核心技术。
在C#中将Excel数据导入数据库是一个常见的任务,特别是在处理大量结构...总的来说,C#将Excel导入数据库涉及到文件操作、数据读取、数据库连接和数据传输等多个方面,理解这些概念对于开发高效的数据处理系统至关重要。
3. **Excel数据导出**:在ASP.NET Core应用中,你可以将数据库中的数据导出为Excel文件供用户下载。这通常涉及数据查询、模型映射以及使用NPOI的`ISheet`和`IRow`接口创建工作表和行,设置单元格值。例如,可以创建...
总的来说,"asp.net Excel导入SQLserver源码"是一个用于批量导入Excel数据到SQL Server数据库的解决方案,它涉及到C#编程、Excel文件操作以及数据库交互等多个技术点。开发者通过这个源码可以学习到如何在ASP.NET...
然而,当数据量较大或者需要将数据与数据库进行交互时,将Excel数据导入数据库就显得尤为重要。下面我们将详细探讨这一过程。 首先,我们需要了解Excel数据导入的基本步骤。这通常涉及到以下几点: 1. 数据预处理...
本文将详细介绍如何基于ASP.NET和C#实现DataTable到Excel的转换以及Excel数据的导入,利用提供的"ExcelHelper(Excel导入导出)实例源码"进行深入讲解。 首先,让我们理解DataTable和Excel之间的关系。DataTable是...
本文将详细讲解如何使用C#语言在ASP.NET中实现Excel文件的导入功能,以及涉及到的关键知识点。 首先,我们需要理解的是,ASP.NET是微软推出的一种Web应用程序框架,它基于.NET Framework,提供了丰富的服务器控件和...