Google sheets 如何复制一个电子表格';s单元格到另一个电子表格

Google sheets 如何复制一个电子表格';s单元格到另一个电子表格,google-sheets,google-spreadsheet-api,Google Sheets,Google Spreadsheet Api,我试着像电子表格API批处理副本那样编码,示例基于相同的电子表格,我添加了一个目标单元格,但总是得到相同的错误 com.google.gdata.client.batch.BatchInterruptedException: Batch Interrupted (some operations might have succeeded) : a response has already been sent for batch operation update id='R1C1' 我的代码是这样

我试着像电子表格API批处理副本那样编码,示例基于相同的电子表格,我添加了一个目标单元格,但总是得到相同的错误

com.google.gdata.client.batch.BatchInterruptedException: Batch Interrupted (some operations might have succeeded) : a response has already been sent for batch operation update id='R1C1'
我的代码是这样的

SpreadsheetService spreadsheetService = getSpreadsheetService(currentEmail);


    WorksheetFeed feed = spreadsheetService.getFeed(getWorksheetFeedURL(sourceId), WorksheetFeed.class);
    SpreadsheetEntry targetFeed = spreadsheetService.getEntry(getSpreadsheetFeedURL(targetId), SpreadsheetEntry.class);
    SpreadsheetEntry sourceFeed = spreadsheetService.getEntry(getSpreadsheetFeedURL(sourceId), SpreadsheetEntry.class);

    for(WorksheetEntry entry:feed.getEntries()){
        WorksheetEntry targetWorksheet = spreadsheetService.insert(targetFeed.getWorksheetFeedUrl(), entry);
        FeedURLFactory urlFactory = FeedURLFactory.getDefault();
        URL cellFeedUrl = urlFactory.getCellFeedUrl(sourceFeed.getKey(), "od6", "private", "full");
        URL targetFeedUrl = urlFactory.getCellFeedUrl(targetFeed.getKey(), "od6", "private", "full");
        CellFeed cellFeed = spreadsheetService.getFeed(targetFeedUrl, CellFeed.class);
        List<CellAddress> cellAddrs = new ArrayList<CellAddress>();
        for (int row = 1; row <= entry.getRowCount(); ++row) {
            for (int col = 1; col <= entry.getColCount(); ++col) {
                cellAddrs.add(new CellAddress(row, col));
            }
        }
        Map<String, CellEntry> cellEntries = getCellEntryMap(spreadsheetService, cellFeedUrl, cellAddrs);

        CellFeed batchRequest = new CellFeed();

        for (CellAddress cellAddr : cellAddrs) {
            URL entryUrl = new URL(targetFeedUrl.toString() + "/" + cellAddr.idString);
            CellEntry batchEntry = new CellEntry(cellAddr.row, cellAddr.col, cellAddr.idString);
            String inputValue = cellEntries.get(cellAddr.idString).getCell().getInputValue();
            batchEntry.changeInputValueLocal(inputValue);
            batchEntry.setId(String.format("%s/%s", targetFeedUrl.toString(), cellAddr.idString));
            System.out.println(targetFeedUrl.toString()+": "+cellAddr.idString+" "+ inputValue);
            BatchUtils.setBatchId(batchEntry, cellAddr.idString);
            BatchUtils.setBatchOperationType(batchEntry, BatchOperationType.UPDATE);
            batchRequest.getEntries().add(batchEntry);
        }
        spreadsheetService.setHeader("If-Match", "*");
        // Submit the update
        Link batchLink = cellFeed.getLink(ILink.Rel.FEED_BATCH, ILink.Type.ATOM);
        CellFeed batchResponse = spreadsheetService.batch(new URL(batchLink.getHref()), batchRequest);

        boolean isSuccess = true;
        for (CellEntry entry1 : batchResponse.getEntries()) {
            String batchId = BatchUtils.getBatchId(entry);
            if (!BatchUtils.isSuccess(entry1)) {
                isSuccess = false;
                BatchStatus status = BatchUtils.getBatchStatus(entry);
            }
        }
        spreadsheetService.setHeader("If-Match", null);
SpreadsheetService SpreadsheetService=getSpreadsheetService(当前电子邮件);
WorksheetFeed提要=spreadsheetService.getFeed(getWorksheetFeedURL(sourceId),WorksheetFeed.class);
SpreadsheetEntry targetFeed=spreadsheetService.getEntry(getSpreadsheetFeedURL(targetId),SpreadsheetEntry.class);
SpreadsheetEntry sourceFeed=spreadsheetService.getEntry(getSpreadsheetFeedURL(sourceId),SpreadsheetEntry.class);
对于(工作表条目:feed.getEntries()){
WorksheetEntry targetWorksheet=电子表格服务.insert(targetFeed.getWorksheetFeedUrl(),条目);
FeedURLFactory urlFactory=FeedURLFactory.getDefault();
URL cellFeedUrl=urlFactory.getCellFeedUrl(sourceFeed.getKey(),“od6”,“private”,“full”);
URL targetFeedUrl=urlFactory.getCellFeedUrl(targetFeed.getKey(),“od6”,“private”,“full”);
CellFeed CellFeed=spreadsheetService.getFeed(targetFeedUrl,CellFeed.class);
List cellAddrs=new ArrayList();
对于(int row=1;row批量复制:

有一个带有单元格引用(如$A5)的Bug。 他们不会写电子表格。虽然A5和$A$5都有效,但只有一个$A的引用会导致问题。我忘记了细节