我使用Symfony 3.2(PHP框架)和Google API使用代码管理Google电子表格。
我使用google/apiclient
和asimlqt/php-google-spreadsheet-client
库来管理Google表格。
通常,我还在console.developers.google.com中创建了应用程序。
一切都运行良好,但是当我在Google Sheet中添加新列之后,就会出现此问题。
我从console.developers.google.com删除了应用程序并重新创建它,我也创建了新的电子表格。但同样的问题又来了。
我跟随此Document。
本文档提到了此问题,但没有提及如何解决此问题。
这是我跟随https://www.twilio.com/blog/2017/03/google-spreadsheets-and-php.html
的文件答案 0 :(得分:1)
Yoo,答案发现,我犯了愚蠢的错误并且代码没有错。
1)如果您正在使用Google Spreadsheets并且它突然停止工作,请确认您没有意外地在任何地方插入空白行。它将空白行解释为电子表格的末尾。
2)删除现有的行或列并使用工作表
3)确保工作表的标题名称和您的数组键(插入对象)必须相同。
4)Google表格文档不支持以数字开头,包含空格或包含下划线的列名。
删除所有行和列后,我尝试使用相同的代码,它正在运行。
答案 1 :(得分:1)
您的任何列名都包含下划线吗?
我在添加数据时发现了以下内容:
$worksheet = $sheet->getWorksheetByTitle('Test');
$listFeed = $worksheet->getListFeed();
$cellFeed = $worksheet->getCellFeed();
$cellFeed->editCell(1,1, 'email_address');
foreach ($rows as $row) {
$listFeed->insert([
'email_address' => $row['email_address'],
]);
}
无效,但以下确实有效:
$worksheet = $sheet->getWorksheetByTitle('Test');
$listFeed = $worksheet->getListFeed();
$cellFeed = $worksheet->getCellFeed();
$cellFeed->editCell(1,1, 'email_address');
foreach ($rows as $row) {
$listFeed->insert([
'emailaddress' => $row['email_address'],
]);
}
请注意数组键的文字之间的区别 - email_address 和 emailaddress 。
在列表供稿中使用insert方法时,似乎必须从数组键中去掉下划线。