将WooCommerce数据导出至Google表格:价格格式错误求助
解决WooCommerce订单总价小数点转逗号的Apps Script修改方案
你可以通过两种简单方式修改代码,实现将订单总价的小数点.替换为逗号,:
方法1:直接字符串替换(最直接)
WooCommerce返回的total字段是字符串类型,直接用replace()方法替换符号即可:
修改代码中获取order_total的行:
// 原代码 var order_total = myData.total; // 修改为 var order_total = myData.total.replace('.', ',');
方法2:按区域格式转换(更规范,支持千分位)
如果需要适配特定地区的数字格式(比如欧洲地区常用逗号做小数分隔符),可以先将字符串转为数字,再用toLocaleString()生成符合格式的字符串:
// 修改为 var order_total = Number(myData.total).toLocaleString('de-DE'); // 德国区域格式,小数用逗号 // 也可以用其他支持逗号小数的区域码,比如'fr-FR'、'es-ES'等
修改后的完整代码(以方法1为例)
//this is a function that fires when the webapp receives a GET request function doGet(e) { return HtmlService.createHtmlOutput("request received"); } //this is a function that fires when the webapp receives a POST request function doPost(e) { var myData = JSON.parse([e.postData.contents]); var order_created = myData.date_created; var billing_email = myData.billing.email; var order_total = myData.total.replace('.', ','); // 核心修改处 var order_number = myData.number; var billing_first_name = myData.billing.first_name; var billing_last_name = myData.billing.last_name; var shipping_country = myData.shipping.country; var payment_method = myData.payment_method_title; var billing_phone = myData.billing.phone; var shipping_address_1 = myData.shipping.address_1; var shipping_postcode = myData.shipping.postcode; var shipping_city = myData.shipping.city; var sheet = SpreadsheetApp.getActiveSheet(); sheet.appendRow([order_number,order_created,order_total,billing_first_name,billing_last_name,billing_email,billing_phone,shipping_address_1,shipping_city,shipping_postcode,shipping_country,payment_method]); }
额外注意
如果Google Sheets自动将逗号分隔的内容识别为文本,后续需要做数字运算的话,也可以先保留数字格式,再通过设置单元格格式来强制显示逗号:
在appendRow之后添加一行代码,设置对应列的数字格式(假设总价在第3列):
var lastRow = sheet.getLastRow(); sheet.getRange(lastRow, 3).setNumberFormat('#,##0.00');
这样单元格会以逗号作为小数分隔符显示,同时保留数字属性方便后续处理。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

