在 Javascript 中下载 CSV 文件时如何锁定十进制符号?

问题描述

我有一个可行的解决方案来下载由我的 API 使用 axios 生成的 CSV 文件。 (见下面的代码

我的问题是,根据 Windows 区域中设置的 十进制符号,CSV 文件中的数字并不总是采用正确的格式。

例如:

  • 如果我的十进制符号是“.”,那么 CVS 文件中的数字将被保存为 122.33
  • 如果我的十进制符号是“,”,那么 CVS 文件中的数字将被保存为 122,33

有没有办法“锁定”这个设置,所以当javascript从blob创建CSV文件并下载它时,十进制符号总是“.”?

这是我的代码

getWithParams: (route,mutation,commit,payload) => new Promise((resolve,reject) => {
    commit('setIsLoading',true);
    const params = new URLSearchParams();
    payload.params.forEach((element) => {
      params.append(element.param,element.value);
    });
    axios.get(`${apiURL}${route}`,{ params,responseType: 'blob' }).then((response) => {
      FileDownload(response.data,'QueryResults.csv');
      commit('setIsLoading',false);
      resolve(response);
    }).catch((error) => {
      reject(helpers.setError(error.message));
    }).finally(() => {
      commit('setIsLoading',false);
    });
  }),

注意事项:

  • 我不能要求用户在 Windows 中更改他们的区域参数
  • CSV 文件中的分隔符是 ;以确保它不会与十进制符号混淆,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)