我正在使用arduino设备,我需要从谷歌电子表格中检索公共数据。
到目前为止,我已经发布了电子表格,我可以在https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full?range=a11:c12访问它,可以在浏览器或arduino中打开(我正在使用SIM800模块,因此可以使用HTTPS而不会出现问题)。
这是xml项目的输出(我不是很熟悉XML):
<entry>
<id>https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full/R12C11</id>
<updated>2018-04-30T05:31:51.590Z</updated>
<category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#cell'/>
<title type='text'>K12</title>
<content type='text'>12345</content>
<link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full/R12C11'/>
<gs:cell row='12' col='11' inputValue='12345' numericValue='12345.0'>12345</gs:cell>
其中一个请求的每个单元格。 问题是,在这里我可以看到太多不需要/冗余的信息,例如,在“标题”和“内容”中我获得与“gs:cell”中相同的信息,“updated”实际上可能是有用的但是“链接”而“类别”对我来说是完整的。
由于我将使用arduino和sim800模块(能够处理高数据传输速度),因此尽可能简单。
可能有一种方法可以在HTTP调用中请求简化,可能会添加一些参数或将“full”更改为其他内容。
任何帮助都会非常苛刻
答案 0 :(得分:1)
您想要从电子表格ID val c0@Cons(_,_) = Stream(1,2,3,4,5,6).map(_+10).filter(_%2==0)
// **STDOUT**
//map h:1
//filter h:11
//map h:2
//filter h:12
c0.h() //res0: Int = 12
val c1@Cons(_,_) = c0.t()
// **STDOUT**
//map h:3
//filter h:13
//map h:4
//filter h:14
c1.h() //res1: Int = 14
val c2@Cons(_,_) = c1.t()
// **STDOUT**
//map h:5
//filter h:15
//map h:6
//filter h:16
c2.h() //res2: Int = 16
c2.t() //res3: Stream[Int] = Empty
的{{1}}检索更简单的回复。如果我的理解是正确的,那么如何使用查询语言检索值?我认为可能有几种方法。所以请把它想象成其中之一。
range=a11:c12
1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4
https://docs.google.com/spreadsheets/d/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/gviz/tq?range=a11:c12&tqx=out:html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A11:C12</title>
</head>
<body>
<table border="1" cellpadding="2" cellspacing="0">
<tr style="font-weight: bold; background-color: #aaa;">
<td></td><td></td><td></td>
</tr>
<tr style="background-color: #f0f0f0">
<td>DataInCellA11</td><td>DataInCellB11</td><td>DataInCellC11</td>
</tr>
<tr style="background-color: #ffffff">
<td>DataInCellA12</td><td>DataInCellB12</td><td>DataInCellC12</td>
</tr>
</table>
</body>
</html>
https://docs.google.com/spreadsheets/d/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/gviz/tq?range=a11:c12&tqx=out:csv
。"DataInCellA11","DataInCellB11","DataInCellC11"
"DataInCellA12","DataInCellB12","DataInCellC12"
的查询。在此示例中,tqx=out:xml
表示省略第1张。如果我误解了你的问题,我很抱歉。