V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
philipjf
V2EX  ›  数据库

求教数据库导出 Excel 文件中空白字符的处理

  •  
  •   philipjf · 2020-04-26 16:21:31 +08:00 · 1293 次点击
    这是一个创建于 1674 天前的主题,其中的信息可能已经有所发展或是发生改变。
    合作方从数据库中导出的 Excel 文件中存在大量显示空白但是不为空的数据。求教大佬们该如何处理。

    例如:
    “12345678 ”或
    “ ”

    原数据中不含引号,这里是为了方便表示。
    推测是原数据库在导出数据的时候对没有占满最大长度的数据会自动用特殊字符填满到最大长度。
    尝试用 Excel 的 trim 或者替换功能无法解决,空白的字符也无法被识别为空格。
    数据量比较大,每个文件近一百列,一百万行的数据,也没有办法手工处理。

    不得不去除掉这些特殊字符是在因为很多本身是数值类型的数据在混入了这种字符后无法按照数值类型处理。
    第 1 条附言  ·  2020-04-26 18:32:42 +08:00
    「已解决」
    找到的解决方案有两个:
    方案一:在 Excel 里面用 SUBSTITUTE()把空白字符全部干掉
    方案二:导出成 CSV 用 VSC 用字符替换把空白字符干掉
    由于 Excel 性能太渣,最后采用的方案二。
    7 条回复    2020-04-26 16:54:33 +08:00
    koast
        1
    koast  
       2020-04-26 16:23:30 +08:00 via Android
    那那些空白不能复制出来吗,如果可以的话替换成空就可以解决吧。
    gz911122
        2
    gz911122  
       2020-04-26 16:29:28 +08:00
    导入数据库把空白字符全干掉
    再重新导出来...


    话说这种几百万的用 csv 不香吗?
    非用 excel....
    philipjf
        3
    philipjf  
    OP
       2020-04-26 16:39:18 +08:00
    @koast 试过直接复制空白字符替换,也无法用 Excel 的替换或者 trim 干掉
    philipjf
        4
    philipjf  
    OP
       2020-04-26 16:45:53 +08:00
    @gz911122 合作方直接给的就是 Excel 文件,我没有直接对接那边的人是我老板给我的文件也不好抱怨啥。
    目前的状况是不去掉这些空白字符,很多数值类型和布尔类型的字段也必须要以文本类型导入到数据库。
    强行先导入数据库也试过,直接超了 mysql 的单行限制。。。
    gz911122
        5
    gz911122  
       2020-04-26 16:46:53 +08:00
    @philipjf
    不行用 easyexcel 之类的读取再输出,处理一遍好了
    renmu
        6
    renmu  
       2020-04-26 16:49:19 +08:00 via Android
    空白字符我怀疑是 Unicode 字符,Excel 默认的是 gbk 编码,所以会显示成空白。
    philipjf
        7
    philipjf  
    OP
       2020-04-26 16:54:33 +08:00
    @gz911122 实在不行只能这么办了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1538 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:05 · PVG 01:05 · LAX 09:05 · JFK 12:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.