Google表格导出为Excel值而不是公式

时间:2016-12-08 18:01:41

标签: google-sheets export-to-excel

我有一张google工作表,其中第一个标签中的单元格从第二个标签上的单元格中提取数据。

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

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

当我执行文件时 - 下载为 - Microsoft Excel(.xlsx)

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

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

5 个答案:

答案 0 :(得分:0)

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

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

enter image description here

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

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

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

如果它确实是一个谷歌表问题我会感到惊讶 - 这是关于Excel显示。

答案 1 :(得分:0)

@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文档。

答案 2 :(得分:0)

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

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

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

相关

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

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

如果问题是下载的Excel没有从第二张表中获取信息的功能公式,而是将公式显示为文本,请执行上一位评论者所说的内容。检查您的视图以确保您不在公式视图中。使用热键 Ctrl + ,或转到视图选项卡查看视图选项。

如果那不是答案,我帮不了你。我有一个类似的问题,我的公式不能正确导出。这就是我来这里寻求答案的原因。