读取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文件内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AngularJS 中读取 csv 文件内容?

如何批量读取csv格式的文件名及文件内容到新的Excel中?

CSV 文件读取操作

在 node.js 中读取 csv 文件的内容

python如何筛选csv文件的内容

读取文件夹中的所有 .csv 文件并绘制其内容