philipjf
V2EX  ›  数据库

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

  •  
  •   philipjf · Apr 26, 2020 · 1820 views
    This topic created in 2278 days ago, the information mentioned may be changed or developed.
    合作方从数据库中导出的 Excel 文件中存在大量显示空白但是不为空的数据。求教大佬们该如何处理。

    例如:
    “12345678 ”或
    “ ”

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

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


    话说这种几百万的用 csv 不香吗?
    非用 excel....
    philipjf
        3
    philipjf  
    OP
       Apr 26, 2020
    @koast 试过直接复制空白字符替换,也无法用 Excel 的替换或者 trim 干掉
    philipjf
        4
    philipjf  
    OP
       Apr 26, 2020
    @gz911122 合作方直接给的就是 Excel 文件,我没有直接对接那边的人是我老板给我的文件也不好抱怨啥。
    目前的状况是不去掉这些空白字符,很多数值类型和布尔类型的字段也必须要以文本类型导入到数据库。
    强行先导入数据库也试过,直接超了 mysql 的单行限制。。。
    gz911122
        5
    gz911122  
       Apr 26, 2020
    @philipjf
    不行用 easyexcel 之类的读取再输出,处理一遍好了
    renmu
        6
    renmu  
       Apr 26, 2020 via Android
    空白字符我怀疑是 Unicode 字符,Excel 默认的是 gbk 编码,所以会显示成空白。
    philipjf
        7
    philipjf  
    OP
       Apr 26, 2020
    @gz911122 实在不行只能这么办了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1084 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    ♥ Do have faith in what you're doing.