强制使用 csv 的十进制格式
enforce the decimal format for csv
我正在使用 CSVLink 从我的 React 应用下载数据。其中一列包含 16 位数字,因此当我下载文件时,输出格式将更改为类似 8.1543E+15.
const text = [
{ a1: "1111111111111111", a2: "0658" },
{ a1: "2222222222222222", a2: "0658" },
{ a1: "3333333333333333", a2: "0658" },
{ a1: "4444444444444444", a2: "10658" }]
<CSVLink
filename={props.name + ".csv"}
target="_blank"
data={text}
headers={[{ label: "a1", key: "a1" }, { label: "a2", key: "a2" }]}>
{props.name}
</CSVLink>
如果我用记事本打开文件,那么我可以看到完整的数字,但是通过 Excel 我会看到 8.1543E+15 & 658
我如何强制使用小数格式,以便当用户下载文件时他将看到完整的数字,而无需手动更改小数位。
谢谢
.
csv 格式没有规定包含列的格式信息 - 因此您不能强制使用十进制格式。
您唯一可以做的就是强制电子表格程序将数字视为 'string'。
如果您有数字“8154300000000000”在电子表格应用程序中被视为字符串,则需要将其写为="8154300000000000"
" 字符是 csv 中的分隔符 - 这意味着您需要转义 " 字符。 csv中的转义字符是"。也就是说你需要输出双引号("")来转义单引号(")。现在你的输出字符串将是 =""8154300000000000""
最后,你的 React 程序还需要转义 " 字符。javascript 的转义字符是 \ - 但为了简单起见,你可以将字符串括在单引号 (')
您可以在此处查看工作示例..
https://codesandbox.io/s/react-cvs-large-integer-ff32p?file=/src/App.js
const text = [
{ a1: '=""8154300000000000""', a2: "0658" },
{ a1: "2222222222222222", a2: "0658" },
{ a1: "3333333333333333", a2: "0658" },
{ a1: "4444444444444444", a2: "10658" }
];
return (
<CSVLink
filename="largeNumber.csv"
target="_blank"
data={text}
headers={[
{ label: "a1", key: "a1" },
{ label: "a2", key: "a2" }
]}
>
Download Me
</CSVLink>
);
我正在使用 CSVLink 从我的 React 应用下载数据。其中一列包含 16 位数字,因此当我下载文件时,输出格式将更改为类似 8.1543E+15.
const text = [
{ a1: "1111111111111111", a2: "0658" },
{ a1: "2222222222222222", a2: "0658" },
{ a1: "3333333333333333", a2: "0658" },
{ a1: "4444444444444444", a2: "10658" }]
<CSVLink
filename={props.name + ".csv"}
target="_blank"
data={text}
headers={[{ label: "a1", key: "a1" }, { label: "a2", key: "a2" }]}>
{props.name}
</CSVLink>
如果我用记事本打开文件,那么我可以看到完整的数字,但是通过 Excel 我会看到 8.1543E+15 & 658
我如何强制使用小数格式,以便当用户下载文件时他将看到完整的数字,而无需手动更改小数位。
谢谢 .
csv 格式没有规定包含列的格式信息 - 因此您不能强制使用十进制格式。
您唯一可以做的就是强制电子表格程序将数字视为 'string'。
如果您有数字“8154300000000000”在电子表格应用程序中被视为字符串,则需要将其写为="8154300000000000"
" 字符是 csv 中的分隔符 - 这意味着您需要转义 " 字符。 csv中的转义字符是"。也就是说你需要输出双引号("")来转义单引号(")。现在你的输出字符串将是 =""8154300000000000""
最后,你的 React 程序还需要转义 " 字符。javascript 的转义字符是 \ - 但为了简单起见,你可以将字符串括在单引号 (')
您可以在此处查看工作示例..
https://codesandbox.io/s/react-cvs-large-integer-ff32p?file=/src/App.js
const text = [
{ a1: '=""8154300000000000""', a2: "0658" },
{ a1: "2222222222222222", a2: "0658" },
{ a1: "3333333333333333", a2: "0658" },
{ a1: "4444444444444444", a2: "10658" }
];
return (
<CSVLink
filename="largeNumber.csv"
target="_blank"
data={text}
headers={[
{ label: "a1", key: "a1" },
{ label: "a2", key: "a2" }
]}
>
Download Me
</CSVLink>
);