当前位置: 首页 > 知识库问答 >
问题:

如何使用Google Drive/Spreadsheet API将excel文件转换/导入为新的工作表?

周翰池
2023-03-14
// Script-as-app template.
function doGet(e) {
  if (typeof e.parameter.src === 'undefined' || !e.parameter.dst === 'undefined') {
    return result({ status: 404, message: 'src or dst parameter is not defined. Use next format: ?src=key&dst=key[&src_sheet=0 or sheet name]' });
  }

  Logger.log('src is "%s", dst is "%s"', e.parameter.src, e.parameter.dst);

  var source = SpreadsheetApp.openById(e.parameter.src);
  if (typeof source === 'undefined') {
    return result({ status: 404, message: 'The source spreadsheet (key: "'+ e.parameter.src +'") has not been found.' });
  }

  var destination = SpreadsheetApp.openById(e.parameter.dst);
  if (typeof destination === 'undefined') {
    return result({ status: 404, message: 'The destination spreadsheet (key: "'+ e.parameter.dst +'") has not been found.' });
  }

  var sourceSheet;
  if (typeof e.parameter.src_sheet !== 'undefined') {
    Logger.log('src_sheet is "%s"', e.parameter.src_sheet);

    var sheetIndex = parseInt(e.parameter.src_sheet);
    Logger.log('sheetIndex is %s', sheetIndex);

    if (isNaN(sheetIndex)) {
      Logger.log('getSheetByName');      
      sourceSheet = source.getSheetByName(e.parameter.src_sheet);
      if (typeof sourceSheet === 'undefined') {
         return result({ status: 404, message: 'The src_sheet name is not exist in the source spreadsheet.' });
      }
    }
    else {
      var sheets = source.getSheets()
      if (sheetIndex >= sheets.length) {
        return result({ status: 404, message: 'The src_sheet index is out of range of sheets.' });
      }
      sourceSheet = sheets[sheetIndex];
    }
  }
  else {
    sourceSheet = source.getSheets()[0];
  }  

  sourceSheet.copyTo(destination);  

  return result({ status: 200 });
}

var resultData;
function result(value) {
  resultData = value;  
  return HtmlService.createTemplateFromFile('status').evaluate();
}

在那里我等待电子表格的src和dst键。

在ruby中,我使用google_drive gem上传文件并调用Google应用程序脚本

  def self.upload_to_google_drive()
    session = GoogleDrive.login('email', 'password')
    f1 = session.upload_from_file('parsed/xlsx/#CAR06022540.xlsx', "#CAR06022540")
    f2 = session.upload_from_file('parsed/xlsx/#CAR06031629.xlsx', "#CAR06031629")
    url = "https://script.google.com/macros/s/AKfycbzOeZJ4LuvBxFqyi1WDpzNiKbhkjp33D9yWTOTLlq3g56sCqJ_e/exec?src=#{f1.key}&dst=#{f2.key}"
    # call Google-apps-script 
    result = session.request(:get, url)
    puts result
  end

暂时还没有答案

 类似资料:
  • 问题内容: 我想将输入的Excel文件转换为输出XML文件。 如果有人在Java中对如何获取输入Excel文件以及如何将XML写入输出有任何解决方案,请提供任何代码或URL或任何其他解决方案。 谢谢, 米沙尔·沙(Mishal Shah) 问题答案: 查看jexcel或Apache POI库以读取Excel文件。 创建XML文件很简单,只需将XML直接写到文件中,或附加到XML文档中,然后使用标准

  • 问题内容: 如何在不使用导入向导的情况下使用sql查询将Excel文件导入到sqlserver2008 Express Edition中的新表中 谢谢普拉迪 问题答案: 有一个Microsoft知识库文章,列出了所有可能的方法。 http://support.microsoft.com/kb/321686 我认为,使用或将是没有向导的最简单方法。(请参阅分布式查询) 请参阅OPENROWSET文档

  • 问题内容: 我想使用Excel文件来存储用python制作的数据。我的问题是我无法将图纸添加到现有的excel文件中。在这里,我建议使用示例代码来解决此问题 此代码将两个DataFrame保存到两个表中,分别命名为“ x1”和“ x2”。如果创建两个新的DataFrame并尝试使用相同的代码添加两个新的工作表“ x3”和“ x4”,则原始数据将丢失。 我想要一个具有四张纸的Excel文件:“ x1

  • 问题内容: 谁能指导我如何使用PHP将XLS转换为CSV? 我有一个包含文档列表的Excel电子表格,我想使用PHP将其转换为CSV格式。 问题答案: 也许您可以开始使用PHP阅读XLS。 然后,使用主逻辑输出所需的内容(您的情况下为csv)。 祝好运,

  • 问题内容: 我有一个CSV文件。它包含140万行数据,因此我无法在Excel中打开该csv文件,因为其限制约为100万行。 因此,我想将此文件导入MySQL工作台中。此csv文件包含以下列 我正在尝试在MySQL工作台中创建一个名为“虚拟”的表,其中包含诸如 CSV文件名为。我在工作台中的代码是这样的: 但我收到类似的错误 问题答案: 我想您缺少ENCLOSED BY子句 并指定csv文件的完整路

  • 问题内容: 我已经找到了如何使用ApachePOI将文件嵌入Excel的问题的奇妙答案,但是不幸的是,他的答案仅涉及HSSF电子表格(XLS格式),我们目前正在使用新的XSSF格式(XLSX),以及解决方案为HSSF电子表格提出的建议将不起作用。我尝试移植它,但是棺材中的最后一个钉子来自XSSF世界中没有等效的HSSFObjectData。 到目前为止,这是我所做的-我找到了一种将文件附加到Exc