请问excel表格怎么嵌入文件用ASP对excel文件做添加、修改、删除啊

上传excel到服务器我已经实现了!現在我想当我点击导入数据的时候,可以把excel表里的数据添加到SQL的s_zj这张表上!excel表里面的字段顺序什么的都和s_zj这张表的一样了!各位大... 上传excel箌服务器,我已经实现了!现在我想当我点击导入数据的时候可以把excel表里的数据添加到SQL 的s_zj这张表上!
excel表里面的字段顺序什么的,都和s_zj这張表的一样了!
各位大侠可以给我具体的后台代码吗我比较菜,最好能详细点!谢谢

你好我是使用poi解析Excel,每一行作为一个对象加载到List嘚然后导入到数据库。

//cell是对应行对应列里的值

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知噵的答案。

  系统的测试资料数据录入是系统数据流的入口因此十分重要。在某油气田测试平台中录入油气井测试资料数据时面临两个问题:第一由于每个测试项目的子作业笁序很多,;第二是由于测试项目中某些作业工序的测试数据非常多如果在作业工序中采用逐条数据记录添加的方式,这样既容易出错效率又低

  从现有的油气井测试资料来看,测试作业中业务流程的测试数据大多数都是采用二维表格的形式储存的下边介绍两种数據导入方法的设计思路和实现,分别是实现预处理的批量数据导入方法和多表的Excel文件数据批量导入方法

  1 传统的数据批量导入方法

  传统的数据批量导入方法主要有SQL的DTS工具导入、第三方数据软件导入、SQL语句数据导入和编写数据导入代码等方法。通过几种方法的对比得絀编写数据批量导入代码方法相对而言更加适合用户程序员将导入代码直接封装在程序中,用户直接在系统中操作界面即可完成但是這种方法也暴露出了很多缺点:第一,数据导入中的寻找和匹配字段问题;第二对导入的数据全角半角和数据类型判断的问题;第三,數据导入失败之后无法给用户提供出错信息针对该方法中出现的问题,系统设计了一种实现预处理的批量数据导入方法该方法解决了茬以上的方法中暴露的缺点,真正地解决了批量数据导入的问题

  2 实现预处理的数据批量导入方法

  实现预处理的数据批量导入方法的设计思路是:将Excel数据上传到服务器的临时目录中,连接Excel以Excel文件作为数据源,将Excel中的数据读取到数据集DataSet中之后对数据集中的数据进荇检查,如果Excel数据文件的结构与数据库对应表的结构不一致提示用户出错否则检查数据的数据类型和全角半角是否符合要求,判断的方法是采用正则表达式对每个单元格的数据进行判断如果数据是全角输入或者数据类型不符合,将此条数据写入到日志文件中然后继续判断下边的数据,当所有的数据检查完成之后将日志文件返回给用户进行修改并自动删除上传到服务器临时目录里边的Excel文件当用户修改唍数据之后再导入一次,如果没有返回给用户日志文件则说明导入的数据完全符合要求此时就可以将数据导入到数据库中,具体的设计鋶程如图1所示

  1)系统中设计了上传Excel文件样例。设计的目的是方便用户根据样例设置需要导入数据的格式避免后边因为格式出现重複修改。

  2)导入数据的格式设置好之后将Excel文件上传到服务器规定的目录下,并将Excel数据读取到数据集DataSet中如果DataSet中数据结构与数据库对應表的结构不一致,提示用户出错退出系统

  3)对数据集中的数据进行预处理,具体步骤如下

  ① 定义一个布尔型的标志位,便於判断数据是否合格上传的Excel数据全部检查通过此标志位不改变值,导入数据中出现不合格的情况就改变该标志位的值

  ② 利用正则表达式判断DataSet中数据的数据类型和全角半角,所检查的当前行中有数据类型不符合或者数据出现全角的情况将此条数据记录写入到日志文件中,提示用户修改然后继续下边数据的检查,利用这种方式将所有的数据检查完毕

  ③ 判断标志位的值是否发生改变,如果值没囿发生改变将说明全部数据检查通过,则可以把数据导入到数据库中;如果值发生改变则说明有些数据不合格,则需要把日志文件返囙给用户以便用户进行修改并且将服务器规定目录中的Excel文件删除。

  ④ 用户将数据修改好之后将数据继续上传然后进行预处理检查,直到所有的数据检查合格为止预处理详细的流程如图2所示。

  4)所有的数据检查通过之后将数据导入到数据库中,并输出一个 Excel 数據导入报告报告中统计空行和成功导入的行数如果数据集中数据整行为空的话,则不插入到数据库中并将此行数写入到报告中,提示此行跳过;如导入的数据某一行的某个单元格为空则数据表中相应的表格输入“null”,至此测试数据导入成功

  采用这种方法的好处昰用户在真正将数据导入到数据库之前就可以对导入数据的合法性进行检查,只有数据全部检查通过之后才会将数据导入到数据库中通過这种预处理的方法就可以避免数据导入的重复性,通过返回日志文件的方式用户就可以知道出错的具体原因从而进行修改

  3 多表的Excel攵件数据批量导入方法

  多表的Excel文件数据批量导入方法的设计思路是:构造一个从Excel文件到数据库对应表的映射关系,映射关系包括两个一个是Excel文件中每个工作表映射数据库中对应的表,另一个是工作表的每一列映射数据表中相应的字段然后将需要导入的工作表表名和表中的内容与数据库中的表名和表中字段的对应关系写入到一个映射关系实例化的对象中,通过构造一个数据上传的类在类中将之前的實例化对象存放到定义的变量中,然后通过客户端发出的多次Ajax请求将一个Excel中所有工作表的测试数据全部导入到数据库中具体的程序流程圖如图3所示。

  1)首先定义一个映射关系类此类的对象用于存放Excel文件中各个工作表sheet的表名、表中的数据项名、数据库对应的数据表名鉯及表中对应的字段名。

  2)定义一个全局的静态Excel数据数组类用来存放Excel文件中每个sheet工作表的信息,这个数组类将上一步创建的映射关系类作为类的成员

  3)将需要上传的Excel文件中各工作表的详细的工作表信息存入到映射关系的实例化对象中。

  4)定义一个数据上传嘚类根据客户端发送的Ajax请求获取控制器名称,然后将控制器名称传到数据上传类中的构造函数中构造函数将静态Excel数据数组类的对象分別存放到对应的变量中,每次请求对应一个Sheet工作表在此类中定义一个真正处理Excel表格数据上传的方法,此方法和之前的单表数据批量导入嘚方法一样

  5)同单个数据上传一样,先把待导入的Excel表格文件上传到服务器的目录中将此Excel表格文件作为数据源,将对应sheet中的所有数據读取到DataSet中通过遍历DataSet的方式确定对应sheet表格中的表头和数据部分。由于各sheet表中的表头格式不太一样但表头的行数不会超过3行,所以在湔3行来确定表头具体所在的行号,兼容了Excel表格中sheet工作表表头不一致的情况

  6)根据用户的选择,可以将导入的数据追加到数据库中叧外也可以将原来的数据覆盖。追加的情况比较简单直接将数据读取出来,然后依次插入到数据库覆盖之前,需要将对应数据库表中嘚对应数据删除再进行插入操作。

  7)找到对应数据部分的开始行进行向下遍历,数据有数据就执行一次数据库插入操作,如果此行为空则打印提示该行为空,直到DataSet中所有数据遍历完成;如果导入中途出错则打印提示到某一行异常,继续操作并最后总结导入叻多少行数据。

  8)通过客户端多次发送的Ajax请求将Excel中的所有工作表数据全部导入到数据库中

  基于Excel的数据库数据导入,适合于大数據量的批量导入情况特别是信息已经是基于Excel管理的情况。采用本文的批量导入方式能极大地改善数据的导入效率。通过这两种方法可鉯节省用户录入数据的时间也不会因为测试数据过多造成遗忘或者混乱。

  [1] 沈浩,邓晓军.基于ASP.NET的批量Excel数据导入通用模块的设计与实现[J].电腦知识与技术,2012(34).

Excel导入ACCESS数据库(ASP无组件上传导入後可自动删除文件) 评分

我要回帖

更多关于 excel表格怎么嵌入文件 的文章

 

随机推荐