字符串编号固定为Integer Google脚本

时间:2017-02-26 17:03:06

标签: javascript string google-apps-script integer

我无法将字符串'u12345678910'转换为没有科学记数法的整数。所以基本上,它确实需要完全是12345678910。

我是如何接近它的:
1.切片'u'得到我想要的数字(切片后仍然是一个字符串)或使用.replace()
2.尝试过parseInt(),Number(),两者都用科学记数法给我一个数字。
3. parseFloat()&然后是parseInt(),不知道为什么但是在某个地方读到这可能有效,但事实并非如此。

为什么我需要这个确切的数字?
因为它是EmbeddedChart& amp;的图表ID。 Google幻灯片API正在向我提供ID需要为TYPE_INT32的错误。

希望有人能够解决这个问题,因为目前阻止我项目的唯一因素是:(

请在下面找到一些如何重现的示例代码。

*我正在使用Google Apps脚本,图表位于电子表格&我使用的是Spencer Easton的Google Slides API库

var ss = SpreadsheetApp.getActiveSpreadsheet(),
  allSheets = ss.getSheets();
var chart = allSheets[0].getCharts()[0],
    chartId = chart.getId(); // this returns 'u12345678910'

var chartStringNumber = chartId.slice(1); // returns 12345678910 (string)
var chartIdNumber = Number(chartStringNumber); // Here I want the result to be typeof INT & 12345678910, but i keep getting a number incl scientific notation. I have also tried parseInt().

1 个答案:

答案 0 :(得分:1)

内置SpreadsheetApp服务返回的chartID是一个字符串值,可以使用setId()覆盖,并以任意值开头 - 因此它不是您想要的ID。

要使用幻灯片API,您需要真正的'图表ID,可从Advanced Spreadsheet Service获得,也可直接从Sheets API获得。

您可以使用此代码枚举工作表及其图表&使用高级服务的真实ID。

var ch = Sheets.Spreadsheets.get(ss.getId(), {
       "fields": "sheets(charts/chartId,properties(sheetId,title))"
});

var sheets = ch.sheets.map (function (d) {
  return {
    id:d.properties.sheetId,
    name:d.properties.title,
    charts:d.charts
  }
});