我希望能够从 Google Sheets 检索所有工作表(sheet1、sheet2...等)数据,而不仅仅是一张工作表(在本例中为sheet1):
from("timer:run?repeatCount=1")
.to("google-sheets://data/get?spreadsheetId=1i8jAVG3r6BINzdU0NzgAIuDUuz3FiVRyFF1Wm6WQq_0&range='Camel Sheet1'")
.log("${body}")
.convertBodyTo(String.class)
.process(new TransformerGoogleSheets())
.to("file:file/Input?fileName=employee.csv")
.log("Sucess");
我在 Apache Camel 的网站上搜索但找不到相关解决方案。
看起来您想使用
getBatch
方法而不是 get
:
from("timer:run?repeatCount=1")
.to("google-sheets://data/getBatch?spreadsheetId=1i8jAVG3r6BINzdU0NzgAIuDUuz3FiVRyFF1Wm6WQq_0")
.log("${body}")
.convertBodyTo(String.class)
.process(new TransformerGoogleSheets())
.to("file:file/Input?fileName=employee.csv")
.log("Sucess");
我还没有使用 google-sheets api,但您可能会得到一个范围列表作为响应。然后,您可以使用
.split(body())
分割主体,然后像现在一样处理每个范围。您应该通过分析您记录的${body}
来获得响应的结构。
使用
batchGet
方法,您只需指定 spreadsheetId
并且可以省略 range
。
https://camel.apache.org/components/4.4.x/google-sheets-component.html#_api_data_method_batch获取