首页 > 解决方案 > 在 Google 表格中打开 CSV 文件时,某些行被合并到一个单元格中

问题描述

我有一个网络爬虫创建输出到 csv 的链接和属性的索引,目的是在 Google 表格中打开它并使用过滤器视图对其进行排序和搜索。

但是,当我在表格中打开 csv 时,多组线条被卡在一个单元格如此处所示中。

我已经共享了一个测试文件,该文件演示了我的问题,并在此处提供了图像中的结果

我也尝试用 LibreOffice 打开它并得到了相同的结果。

任何帮助都会很棒。

标签: csvgoogle-sheets

解决方案


当我看到您的 CSV 数据时,我注意到在第 6 行有A Single Phone Call,"没有关闭。我认为这可能是您的问题的原因。在这种情况下,当使用 检索 CSV 数据时IMPORTDATA,我确认了与您的情况相同的问题。

但是,我确认当Utilities.parseCsv()使用 Google Apps Script 时,您的 CSV 数据可以被正确解析。那么下面的示例脚本怎么样?

示例脚本 1:

在此示例中,Google Apps 脚本用作自定义函数。在这种情况下,请使用 CSV 文件的文件 ID。请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中,并将自定义函数放入=SAMPLE("1WB2PZ1vyuarBSzjETkbWmn744ZC41Ps8")一个单元格中。1WB2PZ1vyuarBSzjETkbWmn744ZC41Ps8是示例 CSV 文件的文件 ID。

const SAMPLE = fileId => Utilities
  .parseCsv(
    UrlFetchApp.fetch(`https://drive.google.com/uc?export=download&id=${fileId}`).getContentText()
  );
  • 如果要直接从 URL 中检索 CSV 数据,还可以使用以下脚本。

      const SAMPLE = url => Utilities.parseCsv(UrlFetchApp.fetch(url).getContentText());
    
结果:

使用此脚本时,会得到以下结果。

在此处输入图像描述

示例脚本 2:

在此示例中,Google Apps 脚本使用脚本编辑器运行。请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中并设置变量,然后运行myFunction​​. 通过这种方式,CSV 数据被解析并放入电子表格。

function myFunction() {
  const sheetName = "Sheet1"; // Please set the sheet name.
  const id = "1WB2PZ1vyuarBSzjETkbWmn744ZC41Ps8";  // This is the file ID of your sample CSV file.
  
  // 1. Retrieve CSV data.
  const csv = DriveApp.getFileById(id).getBlob().getDataAsString();

  // 2. Parse CSV data to an array.
  const ar = Utilities.parseCsv(csv);
  
  // 3. Put the array to the Spreadsheet.
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  sheet.getRange(1, 1, ar.length, ar[0].length).setValues(ar);
}
  • 此示例脚本与上面的结果相同。

参考:


推荐阅读