【问题标题】:Google Sheets Export to Excel values instead of formulasGoogle 表格导出到 Excel 值而不是公式
【发布时间】:2017-04-24 01:51:06
【问题描述】:

我有一个谷歌表格,其中第一个选项卡中的单元格从第二个选项卡上的单元格中提取数据。

例如 Sheet1 单元格 A1 有 =Sheet2!A1

Sheet1 上的每个单元格都是如此

当我创建文件时 - 下载为 - Microsoft Excel (.xlsx)

它使用公式导出单元格。有没有办法将工作表导出为值而不是公式

在这种情况下,Sheet1 单元格 A1 将不包含 =Sheet2!A1,而是包含 =Sheet2!A1 的值?

【问题讨论】:

    标签: google-sheets export-to-excel


    【解决方案1】:

    您可以复制原始的谷歌电子表格,并在副本中更改每个选项卡的第一个单元格的公式,以从原始单元格导入数据:

    =IMPORTRANGE("spreadsheet id","'tab name'!range")
    

    例如:

    =IMPORTRANGE("1C-PS4wAHS8ssCNgVDfOsssREAz7PjuQGX23Rk0sssss","'measurement with spaces'!A12:F44")
    

    您可以通过原始电子表格 URL 获得的 ID:

    https://docs.google.com/spreadsheets/d/1C-PS4wAHS8ssCNgVDfOsssREAz7PjuQGX23Rk0sssss/edit#gid=99999999
    

    从副本中导出的 xlsx 文件将只有值

    【讨论】:

    • 当然,除了现在您刚刚添加了另一个公式。导出时应该有一种方法可以修改 URL,以指定您需要“仅值”。例如可以输入“export?format=xlsx&type?format=valuesonly&gid”
    【解决方案2】:

    @fabceolins 的答案很简单,适用于正常情况,但我注意到 Excel 仍会包含对 IMPORTRANGE 公式的引用,这可能会导致访问问题。

    我创建了 Google App 脚本以按照以下方法进行复制。 如果您可以使用 Google App 脚本,请添加以下函数:

    function update_view(dup_id, TL="A1", BR="Z991") {
        // Open current Sheet
        var ss = SpreadsheetApp.getActiveSpreadsheet()
        // Supply a duplicate google doc ID. This document will be exported to excel
        var ds = SpreadsheetApp.openById(dup_id)
        // UI element for notifying in the google sheets
        var ui = SpreadsheetApp.getUi()
        //Copy each sheet one by one
        var sheets = ss.getSheets();
        for (i=0; i<sheets.length; i++) {
            src_sheet = sheets[i];
            sheet_name = src_sheet.getName();
            // If same sheet exists in the destination delete it and create an empty one
            dst_sheet = ds.getSheetByName(sheet_name);
            if (dst_sheet != null) {
                ds.deleteSheet(dst_sheet)
            }
            dst_sheet = ds.insertSheet(sheet_name);
            //set column width correctly
            for(j=1; j<=src_sheet.getLastColumn(); j++){
                dst_sheet.setColumnWidth(j, src_sheet.getColumnWidth(j))
            }
            src_range = src_sheet.getRange(TL + ":" + BR);
            dst_range = dst_sheet.getRange(TL + ":" + BR);
            //Note: DisplayValues is set as Values, formulas are removed in dup sheet
            dst_range.setValues(src_range.getDisplayValues());
            //Nice to haves for formatting
            dst_range.setFontColors(src_range.getFontColors());
            dst_range.setFontStyles(src_range.getFontStyles());
            dst_range.setBackgrounds(src_range.getBackgrounds());
            dst_range.setHorizontalAlignments(src_range.getHorizontalAlignments());
            dst_range.setVerticalAlignments(src_range.getVerticalAlignments());
            dst_range.setWraps(src_range.getWraps());
    
            dst_contents_range = dst_sheet.getDataRange();
            dst_contents_range.setBorder(true, true, true, true, true, true);
        }
        //Completed copy, Now open the dup document and export.
        ui.alert("Backup Complete, Please open " + dup_id + " sheet to view contents.")
    }
    
    
    function update_mydoc_view(){
    // https://docs.google.com/spreadsheets/d/<spreadsheet_id>/
        update_view("<spreadsheet_id>")
    }
    

    要运行该函数,请转到 tools->macros->import ,导入该函数并运行 update_mydoc_view()。

    完成后,将google sheet导出为ex​​cel文档。

    【讨论】:

      【解决方案3】:

      如果您要下载单个工作表电子表格,而不是将其下载为 .XLSX,请将其下载为 .CSV

      如果通过双击打开.CSV文件显示奇怪的字符,则您计算机的默认编码与Google服务器使用的不同,要解决此问题,请执行以下操作:

      1. 打开 Excel
      2. 点击文件>打开
      3. 选择.CSV文件
      4. 将显示导入向导。其中一个步骤将允许您选择文件编码,选择 UTF-8
      5. 完成导入向导后,将文件保存为.XLSX

      相关

      【讨论】:

        【解决方案4】:

        我做了以下事情,它对我有用: 复制文件 CTRL+A > CTRL+X > CTRL + V 仅粘贴值(从按 CTRL+V 后显示的粘贴图标)

        【讨论】:

          【解决方案5】:

          默认情况下会发生这种情况 - 您将看到值而不是公式。

          您确定您不在 Excel 中的公式视图中吗?

          如果您选中“显示公式”,它将在公式视图中切换。

          或者一般来说你可以试试这些:

          MS Excel showing the formula in a cell instead of the resulting value

          如果这确实是一个 google sheet 问题,我会感到惊讶 - 它与 Excel 显示有关。

          【讨论】:

            【解决方案6】:

            如果您只想保留Sheet1 中的值,只需选择工作表中的数据,复制它,打开一个新的 Excel 工作簿并粘贴时,而不是使用传统的热键 Ctrl kbd>+V,右键单击单元格A1,然后在右键菜单的粘贴选项类别下选择粘贴值

            如果问题是下载的 Excel 没有从第二张工作表中获取信息的函数公式,而是将公式显示为文本,请按照前面的评论者所说的去做。检查您的视图以确保您不在公式视图中。使用热键 Ctrl+ ~,或转到视图选项卡以检查您的视图选项。

            如果这不是答案,我无法帮助你。我遇到了类似的问题,我的公式无法正确导出。这就是我来这里寻求答案的原因。

            【讨论】:

            • (投反对票的人请给新用户你投反对票的理由。)(只是一个人:请检查你的拼写(让你的设备帮助你)。)虽然这可能有效,但可能这不是 Eric Hendershott 一直在寻找的东西。 (“我也是”不是答案——如果有的话,可以在 cmets 中保留额外的内容。(您可以评论自己的帖子。)
            猜你喜欢
            • 2020-07-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多