visual studio 2008或以上
excel2003
只说主体功能实现部分,其他内容不是本章内容,不做说明。功能实现分三步:1、制定格式:数据库表结构、EXCEL模板结构2、下载上传:下载制定好的excel模板,填写数据,并上传到服务器3、导入oracle:读取上传的excel,批量插入到excel
首先制定好数据格式,要导入表的字段。EXCEL模板的数量都要在oracle表的字段里面,oracle表里面的字段可以比excel模板里面多(不在的导入我没有试过)
用.net将excel表格上传到服务器目录中,增加.net页面使用FileUpload控件来上传excel文件,添加一个按钮'上传数据',一个按钮'下载模板',可以添加一个数据显示控件GridView用于显示上传数据。
程度实现的方法,主体如下,主要用到了两个函数,Server.MapPath,获取保存文件的服务器地址;SaveAs,保存文件到服务器上,即上传文件到服务器上了。
这一步是重点,详细解说下!首先我们用到了一个第三方控件,NPOI,专用于.net上传、导入excel,兼容性好!
先将上传的excel数据读到取datatable中,参数upFilePath:刚才上传的excle文件的地址,参数'Sheet1':excel中工作表的名称保持与上传的excel工作表的名称一样就行。参数0:从第几个工作表开始读。DataTable dt = RenderDataTableFromExcel(upFilePath,'Sheet1',0);
RenderDataTableFromExcel就是引用的第三方控件NPOI,使用方法可以在网上查找资料, 第三方控件拿过来后直接调用即可。下图是部分NPOI的主体功能!
OracleCommandBuilder ocb = new OracleCommandBuilder(da);使用类OracleCommandBuilder将数据写入oracle
da.SelectCommand.CommandText = 'SELECT * FROM T_CUS_VENDSTOCK WHERE ROWNUM=0';这个非常重要,这个select 语句查询出来的字段要与excel中要上传的字段数量完全一致简单的说就是需要导入的字段。
da.InsertCommand = ocb.GetInsertCommand();告诉系统是做插入操作。
最后是打开连接,da.Update(dt);执行插入。