吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 685|回复: 7
收起左侧

[求助] js-export-excel导出来的是文本类型的数字

[复制链接]
wuqingvika 发表于 2023-8-3 11:05
js-export-excel怎么导出number类型的数字。因为涉及的列比较多 发现导出的都是文本类型数字 怎么去批量定义数字类型呢
大佬们求解

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sutramusic 发表于 2023-8-3 11:25
如果是在excel中操作,直接另起一列B3写公式“=B2*1"就可以(假定导出列是B2),再填充B3列,就会变数字型了。再选择B3列复制后粘回B2,不知道我说的对不对。
rwj1990 发表于 2023-8-3 12:51
// 引入 js-export-excel 库
import ExportJsonExcel from 'js-export-excel';

// 例如数据,确保数据是数字类型
const data = [
  [1, 2, 3],
  [4, 5, 6],
  // ...
];

// 定义导出选项
const option = {
  fileName: 'exported-data', // 导出的文件名
  datas: [
    {
      sheetData: data, // 要导出的数据
      sheetName: 'Sheet1', // 工作表名称
      sheetFilter: [], // 可选,数据过滤器
      sheetHeader: [], // 可选,表头
    },
  ],
};

// 创建导出对象并保存 Excel 文件
const toExcel = new ExportJsonExcel(option);
toExcel.saveExcel();

const options = {
  fileName: 'exported-data',
  columnTypes: columnTypes,
};

const excel = new ExportJsonExcel(options);
excel.saveExcel();
gun008 发表于 2023-8-3 14:36
本帖最后由 gun008 于 2023-8-3 14:59 编辑

数字前面加上英文单引号
抱歉, 看错了. 我看源码里面有类型判断, 是不是数据源不是数字类型的?
[JavaScript] 纯文本查看 复制代码
      if (typeof cell.v === "number") cell.t = "n";
      else if (typeof cell.v === "boolean") cell.t = "b";
      else if (cell.v instanceof Date) {
        cell.t = "n";
        cell.z = XLSX.SSF._table[14];
        cell.v = datenum(cell.v);
      } else if (/^hyperlink:/.test(cell.v)) {
        cell.l = {
          Target: cell.v.replace(/^hyperlink:/, ""),
        };
        cell.v = cell.v.replace(/^hyperlink:/, "");
      } else cell.t = "s";
zach14c 发表于 2023-8-3 15:00
Typescript Example
[JavaScript] 纯文本查看 复制代码
  function exportExcelHandler() {
    interface ExcelOption {
      fileName: string;
      datas: any;
    }
    var option: ExcelOption = {
      fileName: "excel",
      datas: [
      {
        sheetData: [
          ['zach', 100, '100.0'],
          ['zach2',200,'200.0'],
        ],
      },]
    }

    var toExcel = new ExportJsonExcel(option); //new
    toExcel.saveExcel();
  }



作者源码自动判定型态部份,如果没特别用string型态,因该是会为数字
[JavaScript] 纯文本查看 复制代码
      if (typeof cell.v === "number") cell.t = "n";
      else if (typeof cell.v === "boolean") cell.t = "b";
      else if (cell.v instanceof Date) {
        cell.t = "n";
        cell.z = XLSX.SSF._table[14];
        cell.v = datenum(cell.v);
      } else if (/^hyperlink:/.test(cell.v)) {
        cell.l = {
          Target: cell.v.replace(/^hyperlink:/, ""),
        };
        cell.v = cell.v.replace(/^hyperlink:/, "");
      } else cell.t = "s";
Natu 发表于 2023-8-3 17:10
实际工作中经常遇到这样的问题,不影响数据处理就无视吧,如果影响数据处理就用二楼的方法处理一下也行,方法很多,楼主也可以继续寻找编程处理的方法。
 楼主| wuqingvika 发表于 2023-8-4 13:49
sutramusic 发表于 2023-8-3 11:25
如果是在excel中操作,直接另起一列B3写公式“=B2*1"就可以(假定导出列是B2),再填充B3列,就会变数字型了 ...

不是 的 客户要求 不要再额外操作,觉得这些导出很基础 不该再额外操作设置了
 楼主| wuqingvika 发表于 2023-8-4 13:49
rwj1990 发表于 2023-8-3 12:51
// 引入 js-export-excel 库
import ExportJsonExcel from 'js-export-excel';

谢谢大佬 感恩
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表