读取csv文件内容
Posted
技术标签:
【中文标题】读取csv文件内容【英文标题】:Read the csv file content 【发布时间】:2021-12-25 09:17:06 【问题描述】:我想使用 php、google drive api v3 读取 csv 文件内容 我得到了文件 ID 和文件名,但我不确定如何读取文件内容? $service = new Drive($client);
$results = $service->files->listFiles();
$fileId="1I****************";
$file = $service->files->get($fileId);
【问题讨论】:
我认为这个线程可能是您问题的答案。 ***.com/q/39102671 您到底想做什么?检索 CSV 行数据?在这种情况下,您应该按照其他人的建议将文件转换为表格并使用表格 API 打开它。如果这就是您想要做的,我会考虑发布一个更详细解释这一点的答案。 【参考方案1】:google drive api 是一个文件存储api。它允许您上传、下载和管理文件的存储。
它不允许您访问文件的内容。
为此,您需要下载文件并在本地打开它。
或者,由于它是一个 csv 文件,您可能需要考虑将其转换为 google sheet,然后您可以使用 google sheet api 以编程方式访问文件中的数据。
从 Google drive api 下载文件的代码如下所示
完整示例可以在这里找到large-file-download.php
// If this is a POST, download the file
if ($_SERVER['REQUEST_METHOD'] == 'POST')
// Determine the file's size and ID
$fileId = $files[0]->id;
$fileSize = intval($files[0]->size);
// Get the authorized Guzzle HTTP client
$http = $client->authorize();
// Open a file for writing
$fp = fopen('Big File (downloaded)', 'w');
// Download in 1 MB chunks
$chunkSizeBytes = 1 * 1024 * 1024;
$chunkStart = 0;
// Iterate over each chunk and write it to our file
while ($chunkStart < $fileSize)
$chunkEnd = $chunkStart + $chunkSizeBytes;
$response = $http->request(
'GET',
sprintf('/drive/v3/files/%s', $fileId),
[
'query' => ['alt' => 'media'],
'headers' => [
'Range' => sprintf('bytes=%s-%s', $chunkStart, $chunkEnd)
]
]
);
$chunkStart = $chunkEnd + 1;
fwrite($fp, $response->getBody()->getContents());
// close the file pointer
fclose($fp);
【讨论】:
以上是关于读取csv文件内容的主要内容,如果未能解决你的问题,请参考以下文章