导入excel文件处理流程节点的解决方案

开发 后端
在我们eform自定义表单中,有上传附件的控件,但是和这种需求稍有区别:eform上传附件的控件,文件会上传到web服务器的目录中,不会打开文件将数据导入到数据库表。 其实打开excel文件,将数据导入到数据库表,这个要用自定义代码来实现更方便。

在没用管理系统的时候,很多企业都会将一些生产或流水线操作的数据保存在excel文件中,按名称或按sheet页形成多份excel的表格数据。

当运用了工作流管理系统后,这些生产或流水线的操作都会记录成流程的节点,过程需要记录的数据,也会应用到管理系统中。通常是建立数据库,建立数据库表来存储这些记录。

原来记录在纸质或excel文件中的数据,就需要通过工作流管理系统,执行流程的节点,打开节点上的表单界面,录入这些数据,并保存到数据库表中。

这样企业用户在操作习惯上会有些变化,原来存excel文件的,现在需要通过表单界面来录入。

用户为了更方便自己,会提出,我们还是按原来的方式,记录在excel文件中,或者说,我们记录了excel文件的,能不能选择excel文件,上传一下,然后再从流程的表单界面中展现出这些数据,并可编辑和维护,然后继续流程的流转。

为了适应这种功能,我们就必须在流程节点的表单中加上上传excel文件的功能。

在我们eform自定义表单中,有上传附件的控件,但是和这种需求稍有区别:eform上传附件的控件,文件会上传到web服务器的目录中,不会打开文件将数据导入到数据库表。 其实打开excel文件,将数据导入到数据库表,这个要用自定义代码来实现更方便。

下面是实现这个需求的过程:

在流程节点表单中加上上传附件的功能按钮,点击后模态打开上传附件的选择页面。

选择需要上传的附件,点击上传,上传附件的页面是用的基本的 type=file的标准控件。action指向后台的类,当选择好文件,点击上传后,后台类截获到上传的文件流。

是j2ee的工程,就利用poi包,分析excel文件的行,列,单元格,取出数据,将数据拼成insert into 的sql语句,将数据写入数据库表。

是dotnet的工程,就利用分析excel文件的dll,分析文件的行、列、单元格,将数据拼成insert into 语句,写入数据库表。

上传完成后,关闭上传页面,返回到流程节点表单录入界面,并且刷新页面,页面表格中显示的,就是刚才excel文件中上传的内容。

用户可以编辑修改表格中的内容,点击 执行后,再次提交修改后的记录,并执行流程的流转。

因为后台分析excel文件,是取的输入流直接分析的,因此web服务器中没有存直接的文件。

将上传附件按钮功能 封装成一个共用的js函数,打开特定的上传附件的页面。在上传附件的页面中接收流程实例id, 标识存入那张业务表的参数。

每个excel文件的格式必须固定,每列需要和数据库表的字段绑定。

这样在流程节点中挂接的业务表单中,需要上传附件功能的,就定义上传附件的按钮,调用封装好的js函数,并按照标识写入数据库表。这样做到在流程节点的表单中快速的集成导入excel文件的功能。

原文链接:http://www.cnblogs.com/webreport/archive/2012/01/18/2325307.html

【编辑推荐】

  1. Java回调函数的理解
  2. Java路线图:甲骨文的两年计划
  3. Java 8将支持无符号整型
  4. Java Swing编程:JTable表格
  5. 深入研究Java虚拟机的类加载机制

 

责任编辑:林师授 来源: web报表的博客
相关推荐

2009-12-07 15:50:27

WCF文件

2009-10-27 15:02:07

VB.NET文件处理

2009-06-10 22:13:55

JavaScriptExcel打印

2012-05-30 15:40:16

大并发并发解决方案

2022-03-18 15:31:19

物联网IOT

2010-09-27 13:37:40

部署DLP

2020-05-28 13:43:23

物联网废物管理IOT

2010-02-22 10:29:11

WCF上传文件

2023-09-20 10:04:04

Python工具

2009-11-06 15:25:25

WCF异常

2019-03-13 08:43:32

边缘计算物联网IoT

2020-05-17 14:02:17

物联网废物管理技术

2014-12-25 13:18:39

2012-01-11 10:55:02

ASP.NET MVC

2019-10-12 05:17:11

物联网大数据IOT

2021-02-04 09:53:28

技术IT决策者TDM

2023-11-30 07:19:08

.NET开源

2018-12-03 11:59:42

Inventec解决方案

2018-12-03 12:26:30

YADRO解决方案

2018-12-03 12:13:21

Mellanox解决方案
点赞
收藏

51CTO技术栈公众号