我试图在单元格中添加日期,但工作表会自动在单引号('
)的字符串中存储值。对于date中的Store
value,我们也尝试添加,userEnteredFormat
但对我们而言无效。
以下是追加请求。
{
requests = [{
appendCells = {
fields = userEnteredValue,
userEnteredFormat.numberFormat,
rows = [{
values = [{
userEnteredValue = {
numberValue = 10.0
}
}, {
userEnteredValue = {
stringValue = Sample String
}
}, {
userEnteredFormat = {
numberFormat = {
type = DATE
}
},
userEnteredValue = {
stringValue = 2015 - 07 - 13
}
}, {
userEnteredValue = {
boolValue = true
}
}, {
userEnteredFormat = {
numberFormat = {
type = DATE
}
},
userEnteredValue = {
stringValue = 2015 - 07 - 13
}
}]
}],
sheetId = abc
}
}]}
示例代码以在工作表上附加单个日期单元格
package org.pentaho.googlesheets.api;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.pdi.steps.googlesheets.GoogleSheetsOutputStepMeta;
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.DriveScopes;
import com.google.api.services.sheets.v4.Sheets;
import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.api.services.sheets.v4.model.AppendCellsRequest;
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest;
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetResponse;
import com.google.api.services.sheets.v4.model.CellData;
import com.google.api.services.sheets.v4.model.CellFormat;
import com.google.api.services.sheets.v4.model.ExtendedValue;
import com.google.api.services.sheets.v4.model.NumberFormat;
import com.google.api.services.sheets.v4.model.Request;
import com.google.api.services.sheets.v4.model.RowData;
public class DateIssueSample {
static String APPLICATION_NAME ;
static JsonFactory JSON_FACTORY;
static HttpTransport HTTP_TRANSPORT;
static List<String> SPREADSHEET_SCOPES ;
static List<String> DRIVE_SCOPES ;
static Sheets service;
static String email = "demo-983@praxis-practice-133423.iam.gserviceaccount.com";
static String pkey ="E:\\P12Key\\My Project-834a8d37d247.p12";
public static Credential authorize(List<String> SCOPES ) throws Exception {
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(email)
.setServiceAccountScopes(SCOPES)
.setServiceAccountPrivateKeyFromP12File(new java.io.File(pkey))
.build();
credential.refreshToken();
return credential;
}
public static Sheets getSheetsService() throws Exception {
Credential credential = authorize(SPREADSHEET_SCOPES);
return new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();
}
public static void main(String[] args) throws Exception {
APPLICATION_NAME = "PDI";
JSON_FACTORY =new GsonFactory();
SPREADSHEET_SCOPES =Arrays.asList(SheetsScopes.SPREADSHEETS);
DRIVE_SCOPES=Arrays.asList(DriveScopes.DRIVE_METADATA_READONLY);
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
service = getSheetsService();
String spreadSheetID= "abc";
Integer sheetID = 123;
String DateValue = "2015-07-13";
List<RowData> rowData = new ArrayList<RowData>();
List<CellData> cellData = new ArrayList<CellData>();
CellData cell = new CellData();
cell.setUserEnteredValue(new ExtendedValue().setStringValue(DateValue));
cell.setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setType("DATE")));
cellData.add(cell);
rowData.add(new RowData().setValues(cellData));
BatchUpdateSpreadsheetRequest batchRequests = new BatchUpdateSpreadsheetRequest();
BatchUpdateSpreadsheetResponse response;
List<Request> requests = new ArrayList<Request>();
AppendCellsRequest appendCellReq = new AppendCellsRequest();
appendCellReq.setSheetId( sheetID);
appendCellReq.setRows( rowData );
appendCellReq.setFields("userEnteredValue,userEnteredFormat.numberFormat");
requests = new ArrayList<Request>();
requests.add( new Request().setAppendCells(appendCellReq));
batchRequests = new BatchUpdateSpreadsheetRequest();
batchRequests.setRequests( requests );
response= service.spreadsheets().batchUpdate(spreadSheetID, batchRequests).execute();
System.out.println("Request \n\n");
System.out.println(batchRequests.toPrettyString());
System.out.println("\n\nResponse \n\n");
System.out.println(response.toPrettyString());
}
}
SpreadSheet,
单日期值附加的示例代码
为了提供Sam答案的含义的示例,如果您只想使用来创建日期值AppendCellsRequest
,则可以这样创建单元格:
CellData cell = new CellData();
cell.setUserEnteredValue(new ExtendedValue().setNumberValue(42198.0));
cell.setUserEnteredFormat(
new CellFormat().setNumberFormat(new NumberFormat().setType("DATE")));
这里的42198是1899年12月30日至2015年7月13日之间的天数。
我试图在工作表中附加一个单元格,例如单元格1A有一个边框并填充了灰色,我想插入一个字符串“你好”,但使用 销毁单元格格式,或者更确切地说,使单元格格式处于默认模式。我知道如何使用 方法,但在我的项目中,我用不同的单元格格式插入了许多不同的数据。我在谷歌上搜索了一下,没找到答案。还有别的办法解决我的问题吗? 来阐述我的问题。在1A中的工作表中,我有一个单元格格式单元格格式(用灰色填充,并有细边框)
我试图在单元格中添加日期,但工作表自动将值存储在带有单引号的字符串中()。对于在日期中存储值,我们还尝试添加,但它不适合我们。 下面是追加请求。 在工作表上附加单个日期单元格的示例代码 电子表格,单个日期值附加的示例代码
问题内容: 我想在包含引号前缀的xlsx工作簿工作表中添加一个单元格,而我正在尝试使用POI库创建该工作表。如何添加这种类型的单元格 我在Maven Central上使用CTXf.setQuotePrefix(boolean quotePrefix)找到了对此的引用,但不知道如何将其添加到XSSFCell 我尝试使用下面的代码 得到例外 谁能帮我这个 问题答案: 的,也是财产的一部分,而不是。 因
问题内容: 如何在Swift中的tableView单元中以编程方式嵌入?我就是那样做 问题答案: 这是您可以在单元格上嵌入的方法。 这是切换调用贝克方法 @LeoDabus 。 注意:如果您可能有多个,则应创建一个CustomCell子类并配置您的内部 方法而不是表视图方法。当将可重用的队列释放出队列时,将其投射到您的CustomCell中这是@LeoDabus的示例
我有一个谷歌表单电子表格。第2行包含日期,例如2020年8月25日、2020年8日26日,跨越多个列。有没有一个脚本我可以运行,使它跳转到包含文档第一次打开时的当前日期的单元格? 我知道您定义了OnOpen()方法,它在打开文档时运行,但是,获取实际工作的代码很困难。 注意:我查看了Google电子表格/文档,在打开时跳转到当前日期单元格,但解决方案不起作用(我假设是因为我的日期都在一行中)。 我
问题内容: 我有一个带有大量行的表。一列包含格式为’%m /%d /%Y’的日期,我想将它们全部更改为格式’%Y-%m-%d’ 通常:更新表设置mydate =‘6’ 我猜是行不通的,因为日期总是在变化。在这种情况下,我该怎么办? 问题答案: 如果日期字符串中的字段正确地用零填充,则可以将它们提取为子字符串: