2017-02-26 34 views
0

我无法将字符串'u12345678910'转换为不带科学记数法的整数。所以基本上,它的字面需要是完全12345678910.固定整数的字符串编号Google脚本

我怎么接触过它:
1片的“U”得到我想要的数量(片其仍然是一个字符串后),或使用.replace()
2.试着parseInt(),Number(),都给了我一个科学记数法的数字。
3. parseFloat()&然后parseInt(),不知道为什么,但在某处读取这可能工作,它没有。

为什么我需要这个确切的数字?
由于它是嵌入式图表的图表ID & Google幻灯片API给我的错误是ID需要是TYPE_INT32。

希望有人有一个解决的办法,因为它的唯一的事情,此刻:(

请在下面找到如何重现一些示例代码挡住了我的项目。

*我在谷歌我的工作Google Apps脚本,图中表格&我使用斯宾塞伊斯顿的谷歌幻灯片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(). 
+0

这个概念可能只是在打印号码时格式化。如果你包含代码中的部分[显示问题](http://stackoverflow.com/help/mcve),那么更有可能有人可以帮助你。 – rckrd

+0

您不提供任何关于您所在工作环境的信息。电子表格? Web应用程序? –

+0

谢谢您的评论,我们完全正确。我已经添加了示例代码来说明我的问题。我正在使用Spreadsheet中的嵌入式图表。 – PdB

回答

0

通过返回的chartID内置SpreadsheetApp服务是可以使用SETID重写一个字符串值(),并以任意值开始 - 所以它不是你想要的id。

要使用幻灯片API,您需要可从高级电子表格服务获得的“真实”图表ID,或直接从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 
    } 
});