起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4175|回复: 12

[结贴] 怎么获取Excel

[复制链接]

64

主题

182

帖子

724

积分

高级会员

Rank: 4

积分
724
QQ
发表于 2019-1-24 11:10:40 | 显示全部楼层 |阅读模式
本帖最后由 time 于 2019-1-24 11:23 编辑

我现在的需求是导入一个excel的文件,然后这个文件要自己解析处理业务。然后我JS要怎么传入这个Excel的参数以及action怎么去获取呢,还有这个excel的路径我要怎么获取并保存呢?
Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel");这种方法是不行的

有没有相关的自定义实例呢?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-1-24 11:35:56 | 显示全部楼层

http://bbs.wex5.com/forum.php?mo ... 7&pid=165008000

获取不到确认事件是否正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

182

帖子

724

积分

高级会员

Rank: 4

积分
724
QQ
 楼主| 发表于 2019-1-24 12:00:55 | 显示全部楼层
jishuang 发表于 2019-1-24 11:35
http://bbs.wex5.com/forum.php?mod=redirect&goto=findpost&ptid=37297&pid=165008000

获取不到确认事件 ...

我并没有用到这个importExcel方法,我想自己重写JS以及ACTION,自己解析
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-1-24 13:17:27 | 显示全部楼层
自己上传参考/UI2/demo/actions/process/invokeAction/mainActivity.w
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

182

帖子

724

积分

高级会员

Rank: 4

积分
724
QQ
 楼主| 发表于 2019-1-27 15:36:37 | 显示全部楼层
jishuang 发表于 2019-1-24 13:17
自己上传参考/UI2/demo/actions/process/invokeAction/mainActivity.w


如图 我现在的需求是
  1.我点击选择的时候弹出选择excel的窗口,然点击上传的时候才执行上传操作,然后后台获取这些参数并且解析Excel,自己解析并且插入数据库

现在的做法
//初始化事件    绑定excel弹窗,配置等
Model.prototype.modelLoad = function(event){
                var self = this;
                excel = this.comp("importExcel1");
                excel.getConfigDlg = function() {
                        var cfg = excel._cfg;
                        cfg.useDefault = true;
                        cfg.mapping = "/UI2/assessManage/anFang/process/anFangUpload/anFang.mapping.xml";
                };
                // 初始化uploader, 赋值。
                excel.showConfigDlg = function() {
                        var dlg = excel.getConfigDlg();
                };
                excel._createUploader(self.getElementByXid("button2"));
                excel.uploader.on('onFileSelected', this._doFileSelected, this);
        };


点击上传执行的是平台的放法{"operation":"importExcel1.importExcel"}


然后配置文件是
<?xml version="1.0" encoding="UTF-8"?>
<mapping>
        <default-config>
                <sheet all="false" start="1" end="1"/>
                <row-number all="false" start="2" />
        </default-config>
        <concept name="MK_T_STATION_DAY">
               
        </concept>
</mapping>

但是在执行上传前事件获取不了workBook ,空指针异常
public static void test() {
                System.out.println("=======================");
                ActionContext actionContext = ModelUtils.getRequestContext().getActionContext();
                Workbook workBook = (Workbook) actionContext.getParameter("excel");
                Sheet sheet = workBook.getSheetAt(0);
                for (int i = 0; i <= sheet.getLastRowNum(); i++) { // 对行进行循环
                        org.apache.poi.ss.usermodel.Row row = sheet.getRow(i);
                        Cell cell = row.getCell(1);
                        // 根据每行第二列的值判断是否导入这行数据 import.mapping.xml里对应的为relation
                        // name="FINTEGER" cell-number="2" check="true"/>
                        // 注意:check="true" 必须加在要删除列所对应的relation上
                        // check:
                        // excel中行数据是否有效判断,当check="true"时cell-number对应列值为空,认为此行数据无效将被忽略
                        if (cell.getNumericCellValue() > 100) { // 如果值大于100 对应这行的值就不导入
                                row.removeCell(cell);
                        }
                }
        }

2.png
1.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-1-27 15:44:27 | 显示全部楼层
自己上传文件参考4楼发的案例啊,跟importExcel无关
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

182

帖子

724

积分

高级会员

Rank: 4

积分
724
QQ
 楼主| 发表于 2019-1-27 16:51:52 | 显示全部楼层
jishuang 发表于 2019-1-27 15:44
自己上传文件参考4楼发的案例啊,跟importExcel无关

我现在想用的是平台的那个组件,然后在导入前事件直接得到EXCEL去解析插入到数据库。这样的做法可以吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-1-27 17:02:33 | 显示全部楼层
那就参考2楼发的获取方法
组件的使用参考/UI2/system/components/justep/excel/demo
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

182

帖子

724

积分

高级会员

Rank: 4

积分
724
QQ
 楼主| 发表于 2019-1-28 10:58:42 | 显示全部楼层
jishuang 发表于 2019-1-27 17:02
那就参考2楼发的获取方法
组件的使用参考/UI2/system/components/justep/excel/demo

我现在是参考2楼的方法写的,但是执行前事件中这个方法调用出错Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel");报空指针异常。
然后如果把执行前事件注释的话还是到不了导入完成后事件。不知道我的importExcel1是否有问题,是否根本没有传入文件
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-1-28 11:33:48 | 显示全部楼层
是在importExcelBeforeAction这个action的执行后事件中
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-24 22:35 , Processed in 0.058705 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表