V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shustone
V2EX  ›  问与答

Java 关于 excel 上传导入到数据库的问题

  •  
  •   shustone · 2019-01-09 10:35:01 +08:00 · 2056 次点击
    这是一个创建于 2144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想请问一下这个可不可实现:客户在页面上进行 excel 上传导入到数据库表、但是 excel 的模板没有确定,有可能这个月使用的 excel 模板列数只有 50 列上传导入、下个月就有 55 列上传导入到数据库、后端怎么来进行处理、这种表结构好像也要进行改变?

    17 条回复    2019-01-09 13:35:32 +08:00
    fmumu
        1
    fmumu  
       2019-01-09 10:39:42 +08:00 via Android   ❤️ 1
    mongodb,不管什么表结构
    shustone
        2
    shustone  
    OP
       2019-01-09 10:44:18 +08:00
    @fmumu 大佬、我们用的是 oracle。我想问的是这种有不有好的解决方式?
    night98
        3
    night98  
       2019-01-09 10:45:49 +08:00   ❤️ 1
    存成 json 或 csv 字符串?
    lhx2008
        4
    lhx2008  
       2019-01-09 10:46:16 +08:00 via Android   ❤️ 1
    可以强行用列式数据库的储存方式,不过,不适合再查询修改,只能一次导入或者导出
    shustone
        5
    shustone  
    OP
       2019-01-09 10:57:33 +08:00
    @night98 只能用 excel 来上传
    night98
        6
    night98  
       2019-01-09 10:58:13 +08:00
    @shustone #5 excel 上传完解析成 map 或者其他的,然后转成 json 或者 csv。
    shustone
        7
    shustone  
    OP
       2019-01-09 10:58:53 +08:00
    @lhx2008 这个估计不能、因为这些数据是从其他地方弄过来。然后这边的系统来进行展示
    shustone
        8
    shustone  
    OP
       2019-01-09 10:59:37 +08:00
    @night98 我去研究一下
    zhaogaz
        9
    zhaogaz  
       2019-01-09 11:00:49 +08:00
    需要看入库的东西怎么用。单纯的入库是非常简单的。

    最简单,最差劲的处理办法显然就是每次上传 excel,数据库都建一个表。

    其他思路,的话,可以直接把文件二进制入库。解析读取内容,组织成表结构(上传 id,行号,列号,实际内容)。把 excel 内容读取到,构造成对象,序列化 json 入库。换成 xml 也行。
    liuxey
        10
    liuxey  
       2019-01-09 11:02:17 +08:00
    最简单的两种方法:
    整列存,字段为:row,value (逗号隔开或 json 等字符串格式),10 行数据就有 10 条数据
    列转行,字段为:row, column, value(一个单元格的值),10 行 50 列就有 500 条数据

    两种方法各有利弊,自己看吧。
    liuxey
        11
    liuxey  
       2019-01-09 11:03:07 +08:00
    @liuxey #10 说错了,第一个是“整行存”
    sonyxperia
        12
    sonyxperia  
       2019-01-09 11:03:20 +08:00
    让用户统一好上传的 excel 格式。
    Done.
    xiaoxinshiwo
        13
    xiaoxinshiwo  
       2019-01-09 11:09:47 +08:00
    json
    dangluren
        14
    dangluren  
       2019-01-09 13:13:12 +08:00
    dangluren
        15
    dangluren  
       2019-01-09 13:13:38 +08:00
    目前还缺 excel 和模板表入库,不过我已经开发好了,过两天传上去
    yaerda
        16
    yaerda  
       2019-01-09 13:24:17 +08:00 via Android
    模板列数可变的多不多,如果有些基础信息是固定列的话,以这些作为表结构,把可变的部分再单独存到一个字段,前端展示的时候也可以展示基础固定信息,变化的列动态解析展示
    shustone
        17
    shustone  
    OP
       2019-01-09 13:35:32 +08:00
    感谢各位回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:05 · PVG 19:05 · LAX 03:05 · JFK 06:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.