V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sayhier
V2EX  ›  程序员

excel 工具,如何最简单的变成 web 服务?

  •  
  •   sayhier · 2019-08-13 18:37:43 +08:00 · 5095 次点击
    这是一个创建于 1932 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司现有一个 excel 工具,就是输入些数然后计算结果,不想把 excel 文件发给个人怕背后的公式啥的泄密。所以想搞成网页版大家访问。

    公司 IT 跟微软战略合作,有 Azure 的资源可以用。

    我能想到的:用 Power BI,因为 excel 跟 Power BI 也差不多嘛。把 excel 找个漂亮的 HTML 模板,然后背后的算法逻辑用 JS 重写,然后放到虚机上去。

    开发、部署复杂,需要找供应商干的就算了。没预算。

    第 1 条附言  ·  2019-08-14 12:12:55 +08:00
    不想把文件给销售本人,因为他们可以把工具带走了,哪怕不在公司了,所以要在线版的。

    API 方式也不可行,太复杂了,没人搞这个。

    需要有输入有输出,背后就是些公式和逻辑。
    第 2 条附言  ·  2019-08-14 12:29:04 +08:00
    其实我的本意吧,就是想让非程序员,只会 office 工具的人去干这件事情
    37 条回复    2019-10-25 16:08:09 +08:00
    caqiko
        1
    caqiko  
       2019-08-13 18:41:53 +08:00 via Android
    excel 和 pbi 差的很多。

    还是直接开发 web 应用比较适合吧
    kajweb
        2
    kajweb  
       2019-08-13 18:41:55 +08:00
    py->read->output->data.xls->convert->data.html?
    ADMlN
        3
    ADMlN  
       2019-08-13 18:42:02 +08:00 via Android
    全选,复制,粘贴值,怎么样?
    momocraft
        4
    momocraft  
       2019-08-13 18:42:38 +08:00
    最小开发可能是接上 COM/OLE,然后开放成 API

    愿意重写逻辑那用什么都可以了
    hhhsuan
        5
    hhhsuan  
       2019-08-13 18:44:17 +08:00 via Android
    所以你的网页版是只需要显示呢还是也要输入?
    koebehshian
        6
    koebehshian  
       2019-08-13 18:55:56 +08:00   ❤️ 1
    "怕背后的公式啥的泄密","背后的算法逻辑用 JS 重写",那看网页源码不就泄密了
    snw
        7
    snw  
       2019-08-13 19:45:33 +08:00 via Android
    现在 Office 不是有 web add-in 了吗?
    不过 JS 很难保密,只能加强混淆
    exip
        8
    exip  
       2019-08-13 19:50:37 +08:00 via Android
    用 php 或 python 或 go 写个功能一样的程序放服务器,对外提供接口
    dexterzzz
        9
    dexterzzz  
       2019-08-13 19:55:18 +08:00
    有 offoce365 用 sharepoint online list,2019 版本的,加上 microsoft flow。
    userdhf
        10
    userdhf  
       2019-08-13 19:57:21 +08:00
    用 js 真的好吗? 0.1+0.2 都算不对,还是不要冒险了吧...
    CallMeReznov
        11
    CallMeReznov  
       2019-08-13 22:40:00 +08:00   ❤️ 1
    直接导入 powerBI!
    后续小范围修改也简单,给领导看也牛逼,高大上,跟电影里似得!

    虽然我没钱用,但是看的好利好的样子!
    Pastsong
        12
    Pastsong  
       2019-08-13 22:41:58 +08:00
    Buges
        13
    Buges  
       2019-08-13 23:00:29 +08:00 via Android
    我记得 excel 好像有个操作,执行之后所有的值都变成常量,什么表达式都没了。
    smallgoogle
        14
    smallgoogle  
       2019-08-13 23:01:30 +08:00
    大概只能后端语言写。js 就肯定暴露了。
    zhangchao12cn
        15
    zhangchao12cn  
       2019-08-13 23:43:59 +08:00   ❤️ 1
    Power BI 网页端导入了 excel 不是可以自动生成 web 页面的吗
    jinliming2
        16
    jinliming2  
       2019-08-14 01:06:57 +08:00 via iPhone
    前后端数据绑定,数据输入在前端,输入实时发给后端计算并返回计算结果,可通过 websocket 达到实时通信?
    公式如果是保密的话,那就别想着前端计算了,只能把数据发给后端去计算,公式保存在服务器上。
    c090817
        17
    c090817  
       2019-08-14 01:13:31 +08:00
    填入值然后根据需求 点击计算生成数据,后端算完然后直接生成表格或者导出 excel 比较简单
    ihacku
        18
    ihacku  
       2019-08-14 03:29:40 +08:00 via iPhone
    可能不符合 lz 需求 可以看下这个
    https://github.com/ricklamers/gridstudio
    wenzhoou
        19
    wenzhoou  
       2019-08-14 06:47:46 +08:00 via Android
    excel 有密码保护你不知道吗?
    nnnToTnnn
        20
    nnnToTnnn  
       2019-08-14 08:55:51 +08:00
    @userdhf 说的好像 Java 能算对一样,对于精准的浮点计算本来就要用到数学库
    realpg
        21
    realpg  
       2019-08-14 08:57:55 +08:00 via Android
    @wenzhoou 1 元解密保护(不是打开密码,保护密码) 欢迎支持
    LeeSeoung
        22
    LeeSeoung  
       2019-08-14 09:20:48 +08:00
    excel 也有 online 版,可以控制权限
    sky101001
        23
    sky101001  
       2019-08-14 13:29:07 +08:00
    要真正保密只能在后端操作吧。用 js 重写一样会暴露算法,防君子不防小人。
    不肯做 api,那不妨用 vba 封装 dll,每次用的时候给出动态密码,需要下载对应的临时 key 才给用。不过这种做法纯属脱裤子放屁
    windedge
        24
    windedge  
       2019-08-14 13:38:41 +08:00
    如果网速可以接受的话, 可以试下 AirTable
    skenan
        25
    skenan  
       2019-08-14 13:53:10 +08:00
    Airtable + 1
    Les1ie
        26
    Les1ie  
       2019-08-14 14:21:51 +08:00
    web 上传一个 excel,然后我 pandas 计算出结果,返回一个 excel 文件给用户

    以前我这想写过一个工具,体验海星
    ptrees
        27
    ptrees  
       2019-08-14 18:26:46 +08:00
    自己用 vue 做过一个类似的,读取一个本地的 excel 文件然后显示在网页上,不知道符不符合你的需求,读取数据的部分比较简单,只读取第一列,可能需要重写
    https://segmentfault.com/a/1190000019320653?_ea=12663757
    16ByUe06GJ2y3umH
        28
    16ByUe06GJ2y3umH  
       2019-08-15 09:20:58 +08:00
    @nnnToTnnn #20 666
    sunxl
        29
    sunxl  
       2019-08-15 10:27:30 +08:00
    @userdhf 这样说话真的好吗,0.1+0.2 都不会算,就不要出来秀智商了吧
    yl666
        30
    yl666  
       2019-08-15 11:11:24 +08:00
    在线 spreadJS,我们买过 20w
    userdhf
        31
    userdhf  
       2019-08-15 11:20:38 +08:00
    @sunxl 要不您给讲讲?呵呵。
    nnnToTnnn
        32
    nnnToTnnn  
       2019-08-15 11:29:31 +08:00
    @vexplain 难道错了么? Java 要用到 BigDecimal 因为计算机是十六进制了,所以对于十进制的浮点计算本来就不准
    nnnToTnnn
        33
    nnnToTnnn  
       2019-08-15 11:30:15 +08:00
    @vexplain 计算机原理里面不是有讲过为什么会出现计算不准确的问题。
    16ByUe06GJ2y3umH
        34
    16ByUe06GJ2y3umH  
       2019-08-15 11:35:15 +08:00
    @nnnToTnnn #33 没错啊老哥, 不要误解. 我是赞许你, 不光 JS,
    Java, Python 等都有这个问题
    nnnToTnnn
        35
    nnnToTnnn  
       2019-08-15 11:40:48 +08:00
    @vexplain 第一个就是怀疑我哪里错了,只要有人 @我总感觉哪里做错了 叹气。。。
    16ByUe06GJ2y3umH
        36
    16ByUe06GJ2y3umH  
       2019-08-15 11:43:51 +08:00
    @nnnToTnnn #35 要自信, 哈哈哈
    FFSephiroth
        37
    FFSephiroth  
       2019-10-25 16:08:09 +08:00
    非程序员,只会 office 工具的人去干这件事情还是算了吧。但是看你前面的说法你是懂 JS,懂一些基本的代码开发的。那么可以用在你的系统中嵌入一些第三方控件来完成。既然你懂 JS,那么推荐你一款前端的类 Excel 控件,SpreadJS
    https://www.grapecity.com.cn/developer/spreadjs
    用这个的好处是,只要你会 JS 就能用起来,并且功能很全 Excel 的常用功能他基本都支持,而且设置是可以跟 Excel 进行互通的。之后搭配一个带有权限的简单系统外壳就基本完成你想要的了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:10 · PVG 14:10 · LAX 22:10 · JFK 01:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.