我使用 Google Sheet API v4,我想在工作表中插入新行。我尝试了https://developers.google.com/sheets/api/guides/values#appending_values 但这样只需插入数据,我想将数据添加到特定列,如下所示:有没有办法在上添加行使用 java 的没有 OAuth 的 Google 电子表格? 这是一个如何使用 api v3 执行此操作的示例
row.getCustomElements().setValueLocal("id", "21");
row.getCustomElements().setValueLocal("type", si.getType().toString());
row.getCustomElements().setValueLocal("longitude", String.valueOf(si.getLongitude()));
row.getCustomElements().setValueLocal("latitude", String.valueOf(si.getLatitude()));
row.getCustomElements().setValueLocal("last_maint", String.valueOf(si.getLast()));
row.getCustomElements().setValueLocal("inst_date", String.valueOf(si.getInst()));
row = service.insert(listFeedUrl, row);
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用 api v4.1 做同样的事情?
我有一个电子表格,其日期格式设置为“ Jan 30”等,但具有实际的日期值。
我使用python Google Sheets API提取数据,如下所示:
def get_spreadsheet_sheets(service, spreadsheetId):
spreadsheet = service.spreadsheets().get(spreadsheetId=spreadsheetId).execute()
dateCell = "C15"
for sheet in spreadsheet['sheets']:
sheetTitle = sheet['properties']['title']
rangeName = "%s!%s" % (sheetTitle, dateCell)
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values',[])
Run Code Online (Sandbox Code Playgroud)
值给我“ 1月30日”,我想读成1/30/2017..我该怎么做?
深入研究电子表格sheets.value.get http文档(与此处的python api客户端方法参考相对应,我了解到可以将valueRenderOptionas设置为UNFORMATTED_VALUE..
但是当我运行时,我得到了这个奇怪的数字Jan 30:42765
这个数字到底是什么格式?我知道这不是unix时间戳b / c转换,返回的日期不合理
此代码有效,但使用python日期格式(它还假定年份为当前年份。但是显然并非总是如此):
def get_spreadsheet_sheets(service, spreadsheetId):
spreadsheet = service.spreadsheets().get(spreadsheetId=spreadsheetId).execute()
dateCell = "C15"
for sheet in spreadsheet['sheets']:
sheetTitle = …Run Code Online (Sandbox Code Playgroud) 我正在使用适用于 Java 的 Google Sheets API v4用一些值填充电子表格:
String spreadsheetID = ...;
Spreadsheets service = new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(), credential).setApplicationName("Test").build().spreadsheets();
List<List<Object>> content = new ArrayList<>();
content.add(Arrays.asList("Client", "John Doe"));
content.add(Arrays.asList("Date", new Date()));
service.values().update(spreadsheetID, "Sheet1!C3:D4",
new ValueRange().setValues(content)).setValueInputOption("RAW").execute();
Run Code Online (Sandbox Code Playgroud)
但调用时出现以下错误execute():
String spreadsheetID = ...;
Spreadsheets service = new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(), credential).setApplicationName("Test").build().spreadsheets();
List<List<Object>> content = new ArrayList<>();
content.add(Arrays.asList("Client", "John Doe"));
content.add(Arrays.asList("Date", new Date()));
service.values().update(spreadsheetID, "Sheet1!C3:D4",
new ValueRange().setValues(content)).setValueInputOption("RAW").execute();
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我试图在 Google 电子表格上添加日期。为了添加日期,我们在纪元中转换了日期。
对于电子表格时代
Google 表格使用电子表格中常用的一种纪元日期形式。值的整数部分(小数点左边)计算自 1899 年 12 月 30 日以来的天数。小数部分(小数点右边)将时间计算为一天的分数。例如,1900 年 1 月 1 日中午是 2.5,2 因为它是 1899 年 12 月 30 日之后的两天,0.5 因为中午是半天。1900 年 2 月 1 日下午 3 点将是 33.625。
我们使用 Joda 时间 API 进行计算。(我们的 JDK 版本 1.7)。
对于整数,我们使用以下代码。
public static double getEpochDate(Date inputDate)
{
MutableDateTime epoch = new MutableDateTime();
epoch.setTime(0, 0, 0, 0);
epoch.setDate(1899,12,30); //Set to Epoch time
System.out.println(epoch);
DateTime now = new DateTime(inputDate);
Days days = Days.daysBetween(epoch, now);
return Double.valueOf(days.getDays());
}
Run Code Online (Sandbox Code Playgroud)
我们正面临寻找时代编号的派系部分的问题
java spreadsheet epoch google-spreadsheet-api google-sheets-api