因此,我们首先尝试允许用户通过浏览器下载 CSV 文件,效果很好(一些文件大约 375MB)。但是,客户端似乎不会接受,因为 a) 数字格式、b) 删除前导零和 c) 将长数字(如州代码)更改157839481905
为1.58E10
。
如果你用过 Excel,你一定很熟悉这些“我以为你想要这“行为..
因此,我们需要传输一个 Excel 文件,但是否存在不同的格式?(假设用户可以访问最新版本的 Excel 来回答此问题)
我相信 Excel 可以将正确指定的 XML 文件打开为电子表格,其中可能包含正确的“将其格式化为文本”说明,但对于大型文件,这可能会失控。有没有更精简的更原生的 Excel 格式?没有那么多标记?如果您知道它,它在哪里描述?
--编辑--
我想利用我的发现来帮助社区。首先,我们尝试="0040"
在引号前使用等号。这种方法可行,但对于大文件来说,文件太大,Excel 会崩溃。
我们之前尝试过在引号内使用特殊字符,虽然有效,但格式存在问题。
您能流式传输 XLSX 文件吗?不行!
原因:XLSX 文件实际上是一个压缩文件,里面有两个关键文件,一个名为 sharedStrings.xml,是所有 UNIQUE 单元格值的列表,另一个是单元格列表,但带有对第一个 sharedStrings.xml 文件的数字引用。整个文件夹被压缩,看,这就是您的 XLSX 文件。因此,XLSX 文件必须是建造,未流式传输。
答案1
答案2
我看到了一些选项,但我不确定它是否会起作用(顺便说一句,我没有使用 xml 的经验):
您忽略的第一件事是将整个电子表格格式化为文本。好的,文件会太大。
其次,在有问题的数字前面添加“'”,将其转换为文本。再次...
第三:“新”的xlsx在降低文件大小方面应该相当不错,比xls格式好得多。
第四,将格式更改为文本,并将整个工作簿的编码更改为 ASCII 或类似的简单编码。更多信息请点击此处https://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16(如果需要我会在这里添加更多信息)
不确定,但就像最后一件事一样,我会尝试转换为 csv,然后将编码更改为 ASCII 或更小的编码。