繁体   English   中英

如何在 Google Sheets Apps 脚本 CSV 导入中保留现有格式

[英]How Can I Preserve Existing Formatting on a Google Sheets Apps Script CSV Import

在重复导入到同一工作表中时,大多数格式都会保留(例如颜色),但有些不会(例如将列设置为 % 格式)。 如何在重复导入 csv 之前保留工作表中已有的所有格式,例如,重复更新工作表的脚本如下(其中“文件”是 Google 云端硬盘上的 csv 文件):

var content = file.getBlob().getDataAsString();  # csv file on a Google Drive
var csvData = Utilities.parseCsv(content);
current_sheet.clearContents();
current_sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);

已解决:借助这篇文章: Copy value and format from a sheet to a new google Spreadsheet document?

第一行和最后一行是解决方案:

var sNF = current_sheet.getDataRange().getNumberFormats();

var content = file.getBlob().getDataAsString();  # csv file on a Google Drive
var csvData = Utilities.parseCsv(content);
current_sheet.clearContents();
current_sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);

current_sheet.getDataRange().setNumberFormats(sNF)

我刚刚使用下面的脚本进行了快速测试,并保留了单元格格式。

function importCSVFromWeb() {
  // Provide the full URL of the CSV file.
  var csvUrl = "https://query1.finance.yahoo.com/v7/finance/download/MSFT?period1=1577806579&period2=1609428979&interval=1d&events=history&includeAdjustedClose=true";
  var csvContent = UrlFetchApp.fetch(csvUrl).getContentText();
  var csvData = Utilities.parseCsv(csvContent);

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clearContents();
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

我获取数据的方式略有不同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM