我正在使用以下代码下载csv。
<a download="somedata.csv" id='x'>Download CSV</a>
<script>
var csv = '01'; //prints 1 in the cell, truncating leading zero
var csv = "'"+01+"'"; //prints '01' in the cell, with single quote
var csv = '"\""01"\""'; //prints "01" in the cell, with double quotes
var a = document.getElementById('x');
a.href='data:text/csv;base64,' + btoa(csv);
</script>
我需要打印CSV文件中前导零的数字。到目前为止,我找到的解决方案是用单引号或双引号将数字 Package 成文本。但这并没有解决问题,因为它还在单元格中打印引号。
有没有一种方法可以保留前导零并打印单元格中没有引号的数字?有什么建议吗?
编辑:我忘了在原来的帖子中提到,我必须在Excel中打开CSV。
var csv = "'01"; //prints '01 in the cell
var csv = '="01"'; //prints 01 in the cell, but the value is ="01"
有没有一种方法可以获取单元格的值并同时显示为01(而不是不同的显示和值)?
4条答案
按热度按时间pxy2qtax1#
我知道这是一个老问题,但我最近遇到了这个问题,并通过在末尾添加Zero-Width-Space字符来修复它,如下所示:
我希望它能帮助其他遇到这个问题的人。
pjngdqdw2#
这样就可以了。
我想象您正在Excel中查看CSV,它会根据自己的想法和单元格默认值重新设置数字的格式。但是如果您在记事本中查看CSV,您会看到实际文件中的前导
0
仍然存在。ktca8awb3#
你的代码实际工作:
如果在文本编辑器中打开此文件,则会出现前导零。
如果您专门针对Microsoft Excel,则可以添加一个前导单引号以保留前导零-尽管您仍然需要输入每个单元格并按Enter键才能使其生效!:
更复杂-但有效(同样仅适用于Excel)
gdx19jrr4#
我有类似的问题与CSV文件,我发现,添加一个领先的TAB字符与数字使它的工作。
这将保留此前导零,并且Excel将忽略TAB