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

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

  •  
  •   shustone · 45 天前 · 540 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    两种方法各有利弊,自己看吧。
        11
    liuxey   45 天前
    @liuxey #10 说错了,第一个是“整行存”
        12
    sonyxperia   45 天前
    让用户统一好上传的 excel 格式。
    Done.
        13
    xiaoxinshiwo   45 天前
    json
        15
    dangluren   45 天前
    目前还缺 excel 和模板表入库,不过我已经开发好了,过两天传上去
        16
    yaerda   45 天前 via Android
    模板列数可变的多不多,如果有些基础信息是固定列的话,以这些作为表结构,把可变的部分再单独存到一个字段,前端展示的时候也可以展示基础固定信息,变化的列动态解析展示
        17
    shustone   45 天前
    感谢各位回复
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   713 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1