使用javascript在csv文件中保留前导零

使用javascript在csv文件中保留前导零,javascript,csv,formatting,export-to-csv,Javascript,Csv,Formatting,Export To Csv,我正在使用以下代码下载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

<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>
是否有办法获取单元格值并同时显示为01(而不是不同的显示和值)?

下载CSV
var csv='01';
var a=document.getElementById('x');
a、 href='data:text/csv;base64,“+btoa(csv);
这就行了


我想象您正在Excel中查看CSV,它根据其突发奇想和单元格默认值重新格式化数字。但是,如果您查看记事本中的CSV,您将看到实际文件中仍然存在前导的
0

您的代码实际上可以工作:

<a download="somedata.csv"  id='x'>Download CSV</a>
<script>
       var csv = '01';
       var a = document.getElementById('x');
       a.href='data:text/csv;base64,' + btoa(csv);
</script>

var csv=“'01”;
var a=document.getElementById('x');
a、 href='data:text/csv;base64,“+btoa(csv);
更复杂-但有效(同样仅适用于Excel)

下载CSV
var csv='=“01”';
var a=document.getElementById('x');
a、 href='data:text/csv;base64,“+btoa(csv);

我知道这是一个老问题,但我最近遇到了这个问题,并通过在末尾添加零宽度空格字符修复了它,如下所示:

var csv = '01' + String.fromCharCode(8203);

我希望它能帮助其他遇到这个问题的人

请说明您确定前导零被剥离的方式。如果我是对的,这个关键因素就是问题的原因,但是你没有将它包括在你的问题描述中!具体来说,这迫使Excel将“单元格”内容视为文本,而不是将其格式化为数字。虽然正如你所说,这使得文件不可移植。是的,我能想到的唯一解决办法是在Excel和其他任何地方都可以使用,那就是有一行标题,然后是一行所有字符串的伪数据,然后是第3行的真实数据。Excel在确定数据类型时会向前看几行,因此带有字符串的数据会迫使格式化程序不选择数字类型。到目前为止,我认为不需要任何“修复”。Excel显示的值是正确的。前导零没有语义意义。不幸的是,OP并没有解释他或她为什么关心这个问题。我在一家养老金公司工作,他的账户是从它收购的公司迁移过来的。在这种情况下,
0094569
094569
之间的差异非常重要;如果Excel没有正确地解析它,那就太傻了。不幸的是,这段代码在Excel 365中显示时添加了这个字符:1
<a download="somedata.csv"  id='x'>Download CSV</a>
<script>
       var csv = '01';
       var a = document.getElementById('x');
       a.href='data:text/csv;base64,' + btoa(csv);
</script>
<a download="somedata.csv"  id='x'>Download CSV</a>
<script>
       var csv = "'01";
       var a = document.getElementById('x');
       a.href='data:text/csv;base64,' + btoa(csv);
</script>
<a download="somedata.csv"  id='x'>Download CSV</a>
<script>
       var csv = '="01"';
       var a = document.getElementById('x');
       a.href='data:text/csv;base64,' + btoa(csv);
</script>
var csv = '01' + String.fromCharCode(8203);