如何在Datatables导出CSV时移除所有列的美元符号?
解决Datatables导出CSV时移除美元符号的方法
要实现导出CSV时移除所有带美元符号列的$符号,你可以直接在CSV导出按钮的action函数中添加字符串处理逻辑,具体修改如下:
修改后的完整代码
v.ext.buttons.csvHtml5 = { bom: !1, className: "buttons-csv buttons-html5", available: function () { return g.FileReader !== w && g.Blob; }, text: function (a) { return a.i18n("buttons.csv", "CSV"); }, action: function (a, b, d, c) { this.processing(!0); a = I(b, c).str; // 新增:移除所有字段中的美元符号 a = a.replace(/"\$([\d,.]+)"/g, '"$1"'); d = b.buttons.exportInfo(c); var f = c.charset; c.customize && (a = c.customize(a, c, b)); !1 !== f ? (f || (f = p.characterSet || p.charset), f && (f = ";charset=" + f)) : (f = ""); c.bom && (a = "" + a); B(new Blob([a], { type: "text/csv" + f }), d.filename, !0); this.processing(!1); }, filename: "*", extension: ".csv", exportOptions: {}, fieldSeparator: ",", fieldBoundary: '"', escapeChar: '"', charset: null, header: !0, footer: !1, };
逻辑说明
- 新增的
replace方法使用正则表达式/"\$([\d,.]+)"/g,专门匹配CSV中被双引号包裹的带美元符号的数值(例如"$1,234.56") - 替换后会保留数值部分、去掉美元符号,结果为
"1,234.56",不会破坏CSV的字段格式 - 如果你的数值没有被双引号包裹(比如直接是
$1234),可以把正则调整为/\$([\d,.]+)/g,替换为$1即可
内容的提问来源于stack exchange,提问作者X.Jop
相关产品推荐
相关产品推荐

