如何通过 Google 电子表格 API 在 PHP 中创建带有 json 字符串的电子表格
How can I create a spreadsheet with a json string via Google Spreadsheet API in PHP
我正在尝试创建一个包含 4 个工作表和某种格式的电子表格。看了Google的文档,知道可以用方法spreadsheets.create来做。我创建了一个 json 请求正文来测试这个 API,它可以工作,但我不知道如何在 PHP 中发送这个 json。
这是我的 json 字符串,你可以在 Google 电子表格 API 文档中测试它:
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create
{
"properties": {
"title": "Dự toán",
"defaultFormat": {
"verticalAlignment": "MIDDLE",
"wrapStrategy": "WRAP",
"textFormat": {
"fontFamily": "Arial",
"fontSize": 12
}
}
},
"sheets": [
{
"properties": {
"sheetId": 0,
"index": 0,
"title": "CP Xây lắp"
},
"merges": [
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 0,
"endRowIndex": 1
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 2,
"endRowIndex": 3
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 3,
"endRowIndex": 4
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 4,
"endRowIndex": 5
}
],
"data": [
{
"startRow": 0,
"startColumn": 0,
"rowData": [
{
"values": [
{
"userEnteredValue": {
"stringValue": "BẢNG TỔNG HỢP CHI PHÍ XÂY LẮP"
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER"
}
}
]
},
{
"values": [
{}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "CÔNG TRÌNH: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "HẠNG MỤC: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "ĐỊA ĐIỂM: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
}
],
"rowMetadata": [
{}
],
"columnMetadata": [
{}
]
}
]
}
]
}
有人能帮帮我吗^^
我已经完成了。
首先创建一个空白电子表格。
然后解码 json 请求字符串。我们可以按照这个文档创建 json 请求:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
然后我们使用$service->spreadsheets->batchUpdate发送请求。
$requests = json_decode($json_request_string);
$requestBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$requestBody->setRequests($requests);
$response = $service->spreadsheets->batchUpdate($spreadsheetId, $requestBody);
我正在尝试创建一个包含 4 个工作表和某种格式的电子表格。看了Google的文档,知道可以用方法spreadsheets.create来做。我创建了一个 json 请求正文来测试这个 API,它可以工作,但我不知道如何在 PHP 中发送这个 json。 这是我的 json 字符串,你可以在 Google 电子表格 API 文档中测试它: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create
{
"properties": {
"title": "Dự toán",
"defaultFormat": {
"verticalAlignment": "MIDDLE",
"wrapStrategy": "WRAP",
"textFormat": {
"fontFamily": "Arial",
"fontSize": 12
}
}
},
"sheets": [
{
"properties": {
"sheetId": 0,
"index": 0,
"title": "CP Xây lắp"
},
"merges": [
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 0,
"endRowIndex": 1
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 2,
"endRowIndex": 3
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 3,
"endRowIndex": 4
},
{
"sheetId": 0,
"startColumnIndex": 0,
"endColumnIndex": 5,
"startRowIndex": 4,
"endRowIndex": 5
}
],
"data": [
{
"startRow": 0,
"startColumn": 0,
"rowData": [
{
"values": [
{
"userEnteredValue": {
"stringValue": "BẢNG TỔNG HỢP CHI PHÍ XÂY LẮP"
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER"
}
}
]
},
{
"values": [
{}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "CÔNG TRÌNH: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "HẠNG MỤC: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
},
{
"values": [
{
"userEnteredValue": {
"stringValue": "ĐỊA ĐIỂM: "
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"textFormat": {
"bold": true
}
}
}
]
}
],
"rowMetadata": [
{}
],
"columnMetadata": [
{}
]
}
]
}
]
}
有人能帮帮我吗^^
我已经完成了。 首先创建一个空白电子表格。 然后解码 json 请求字符串。我们可以按照这个文档创建 json 请求:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
然后我们使用$service->spreadsheets->batchUpdate发送请求。
$requests = json_decode($json_request_string);
$requestBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$requestBody->setRequests($requests);
$response = $service->spreadsheets->batchUpdate($spreadsheetId, $requestBody);