You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery长ID导出CSV后Excel科学计数法失真的查询优化方案

解决BigQuery导出CSV到Excel时ID被转科学计数法的问题

我之前也踩过Excel自动把长数字转成科学计数法的坑,给你几个亲测有效的解决方案,帮你保住ID的准确性:

方案一:添加零宽空格(肉眼不可见,最省心)

在ID前拼接一个零宽空格字符,Excel会把整个字段识别为文本,不会触发科学计数法转换,而且完全不影响ID的视觉显示。

修改后的查询语句:

SELECT CONCAT(UNICHAR(8203), subscription_id) AS Subscription_id
FROM `ds.sites`, UNNEST(SubscriptionIds) subscription_id

解释:UNICHAR(8203) 是Unicode中的零宽空格,导出到CSV后肉眼看不到,但Excel会把它当作文本标识,彻底避免自动转换。

方案二:用单引号前缀(Excel自动隐藏前缀,显示原始ID)

如果觉得零宽空格有点“隐形操作”,可以给ID加一个单引号前缀——Excel会自动隐藏这个单引号,只显示后面的ID内容,同时强制识别为文本格式。

查询语句:

SELECT CONCAT("'", subscription_id) AS Subscription_id
FROM `ds.sites`, UNNEST(SubscriptionIds) subscription_id

这个方法的好处是逻辑直观,导出后直接打开Excel就能看到正常的ID,不需要额外设置。

方案三:用双引号包裹 + 手动导入设置(适合需要严格保留原始格式的场景)

你之前尝试的CONCAT()加引号没生效,大概率是因为直接双击CSV文件时,Excel自动解析了引号并去掉,导致还是触发了科学计数法。试试这个步骤:

  1. 修改查询给ID加双引号:
SELECT CONCAT('"', subscription_id, '"') AS Subscription_id
FROM `ds.sites`, UNNEST(SubscriptionIds) subscription_id
  1. 导出CSV后,不要直接双击打开,而是在Excel中通过「数据」→「自文本/CSV」导入文件,在导入向导里把Subscription_id列的格式设置为「文本」,再完成导入。这样Excel会保留双引号包裹的文本格式,ID不会被转换。

为什么之前的CONCAT加引号没生效?

直接双击CSV文件时,Excel会自动按默认规则解析:如果单元格内容是纯数字,即使有引号,Excel可能会自动去除引号并将其识别为数字类型,进而触发科学计数法转换。所以要么用隐形字符强制文本,要么配合Excel的手动导入设置。

内容的提问来源于stack exchange,提问作者Rachel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:43:04