Php 在用户输入值时在电子表格中追加行
我有一个字符串数组,需要根据数组的大小将其添加到电子表格中,从第一列到第n列 字符串可以表示多种类型的值,例如数字、日期等,因此必须在用户输入时将其放入表中以保留其含义 据我所知,GoogleAPI提供了两种附加值的方法,但似乎没有一种适合这种情况。以下是我遇到的问题: 使用 这个方法的问题是我找不到一种方法来设置用户输入的值。下面是一个代码示例:Php 在用户输入值时在电子表格中追加行,php,google-sheets-api,Php,Google Sheets Api,我有一个字符串数组,需要根据数组的大小将其添加到电子表格中,从第一列到第n列 字符串可以表示多种类型的值,例如数字、日期等,因此必须在用户输入时将其放入表中以保留其含义 据我所知,GoogleAPI提供了两种附加值的方法,但似乎没有一种适合这种情况。以下是我遇到的问题: 使用 这个方法的问题是我找不到一种方法来设置用户输入的值。下面是一个代码示例: // Build the CellData array $values = array(); foreach( $ary_values
// Build the CellData array
$values = array();
foreach( $ary_values AS $d ) {
$cellData = new Google_Service_Sheets_CellData();
$value = new Google_Service_Sheets_ExtendedValue();
$value->setStringValue($d);
$cellData->setUserEnteredValue($value);
$values[] = $cellData;
}
// Build the RowData
$rowData = new Google_Service_Sheets_RowData();
$rowData->setValues($values);
// Prepare the request
$append_request = new Google_Service_Sheets_AppendCellsRequest();
$append_request->setSheetId(0);
$append_request->setRows($rowData);
$append_request->setFields('userEnteredValue');
// Set the request
$request = new Google_Service_Sheets_Request();
$request->setAppendCells($append_request);
(完整工作代码为)
即使使用,数据也被解释为字符串,因为必须使用(或其他支持的方法,即setBoolValue
,setFormulaValue
,setNumberValue
)设置值
使用
使用这种方法,我可以将数据呈现为用户输入的数据,但在某些情况下,“附加”是在错误的位置完成的。如下列文件所述:
输入范围用于搜索
并在该范围内找到一个“表”。价值观将是
追加到表的下一行,从第一列开始
桌子的另一边
所以这个方法的行为方式和前一个不同,这就给我带来了问题
这是一段代码,可以实现我想要的功能:
$body = new Google_Service_Sheets_ValueRange([
'values' => [ $array_values ]
]);
$params = [
'valueInputOption' => 'USER_ENTERED'
];
// the n-th column
$end_column = chr( ord('A') + count($array_values));
$result = $sheet_service->spreadsheets_values->append(
$fileId,
$sheetName . "!A1:" . $end_column . "1",
$body,
$params
);
的确,它工作正常,但也有一些例外,例如:
- 如果单元格
为空,则A1
方法将把值从第2列开始(参见此以了解原因)append
- 如果我有一些写的行,然后是空行,然后是其他写的行,
方法将“填补空白”,而不是将值放在最后一个写的行之后append
我犯了一些错误吗?有没有一种方法可以用一种或另一种方法来制作我想要的东西 重述:
- 这些值必须视为用户输入的值(例如,数字或日期应解释为用户输入的值)
- 值必须写入最后一个非空单元格后的行中,从第1列开始
- 追加操作必须是原子操作(即,发送一个请求以获取最后一个非空单元格行,然后发送另一个请求以将数据写入其中,这不是一个选项,因为在此期间,另一个用户可以将数据放入其中)
欢迎任何意见 你必须使用谷歌电子表格api吗?我必须在PHPHA的谷歌电子表格中操作。如果你尝试了
setFormattedValues
?对查询的任何反馈都只会帮助你尝试使用setFormattedValues
设置CellData
的值。这些单元格似乎是空白的。