webadi修改经历

一、背景

我们老大给我一个任务,说是erp下载下来的excle文件,用office可以正常打开,用wps就会缺少行信息,让我改一下,顺便给了我一个文档,是wps厂家的建议。

 二、开始研究

我从erp下载下来excle文档,试着用office打开,正常。试着用wps打开,在获取行信息的时候vba代码报错,提示

 百度之后发现,是没有添加引用。为什么office就能有引用,wps就没有引用呢,然后我就对比两个的引用有什么不一样,当然中间还走了很多弯路。

office的引用

wps的引用 

发现有好几个不一样的,开始从xml这个引用入手,office是3.0,wps是6.0,这跟之前发我的文档wps的厂家说的一样。

 接下来就是研究为什么wps会引用6.0,怎么才能让wps引用3.0呢?又经过一堆研究后发现,不管是3.0还是6.0,他的名字参数这些都是一样的

接下来就找BneAddReference方法,看看他是怎么把这两个参数对应成xml6.0的

 

接下来找到了这个方法,里面的版本对应的是1,我猜测是这样的,xml版本指定为1,在系统上找不到后就会默认选择一个,office选择了3.0,而wps选择了6.0,再看wps厂家给的文档,立马联想到是不是把1改成3就可以了呢?经过测试,真的可以了!那么怎么解决问题时搞定了。这个宏代码去哪里改呢?

三、改宏代码

这些宏代码是跟excle一起下载下来的,那么就去erp的oaf上找。

 发现在点击下载的时候,其实就是做了一个a标签页面跳转,那么就找跳转的这个页面CuxPaDelvPG。

 发现这里没做什么操作,而是跳转到了FUNC这个地方,FUNC就是上面a标签里的CUX_DLVR_ENG_IMP。这玩意看着怎么也不像是个地址啊,怎么会跳转呢?在老板的帮助下,发现这玩意是个功能。

果然是个功能,发现他跳转的路径其实是个servlet

 然后在服务器上全局搜索这个类

find / -name BneApplicationService.class

找到这个类后,发现他就是哥servlet,里面有一堆渲染菜单渲染页面的代码,但是没发现什么可用的信息。

 后面杨老板机智过人,突发奇想,既然我们要找这个excle是哪里来的,那么直接找他的下载地址就行了呀

下载地址找到了,他传了4个参数,第三个感觉像是要跳转到下载页面,就在代码里找哪里获取了这个参数。

 这个参数对应了一个类

搞了半天发现找错地方了,我去

这玩意才是正确的下载路径

然后进来有慢慢找,最终找到了 

接下来就是找我要改的地方

 这块就陷入了有一个问题里,当执行下载好的excel时,他会新建一个excel,新建的这个excel里有binMain,而我要改的地方就在binMain模块里,也就是说下载下来的文档里没有binMain这个方法。

我比较幸运,在上面那个类里搜索binMain,返现了createBinMain的方法

 进入这个类后发现了

再追进去

 终于找到了我要改的地方,将最下面那行里的1改为3,发布,测试,大功告成!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值