查看完整版本: 如何使用GAS抽出獨立文本
頁: [1]

monny2311 發表於 2019-5-29 01:41 PM

如何使用GAS抽出獨立文本

希望可以透過GAS(google apps script),使用ID指定活頁簿,並於活頁簿內各分頁進行相同操作(抽出所有獨立文本[與excel的unique函數一樣,重複的情況只抽出一個],並於存在文本的最終列後新插入一行,輸出所有獨立文本)。本人對IT沒有基礎認識,只能透過網上教學詢問,目前只能做到抽出非重複文本,但重複的文本直接被去掉了。
這次主要是因為平常需要翻譯文本,希望可以把unique的函數透過GAS增加效率,希望大大們能解答一下。

附上目前的code
    function main () {
        const TARGET_SHEET_ID = "1QFk5Ce7llVvHYgxK8lStWkj2dqfGMx_jms2FLBhFvpc";
        const SSLink = SpreadsheetApp.openById(TARGET_SHEET_ID);
        const sheets = SSLink.getSheets();
        const uniqueDataObject = {};
        sheets.forEach(function(sheetObject){
            const rengeList = getSheetValues(sheetObject);
            margeUniqueObjectData(uniqueDataObject , findUniqueDataObject(rengeList));
        });
        Logger.log(uniqueDataObject);
        const convertedKeyArray = objectKeyToArray(uniqueDataObject);
        Logger.log(convertedKeyArray);
    }

    function getSheetValues(sheet , targetColumn , targetLow) {

        if(!targetColumn)targetColumn = 1;
        if(!targetLow)targetLow =sheet.getLastRow();
        const columnRange = sheet.getRange(1,targetColumn,targetLow,2);
        const rangeValueDataMultipleList =[].concat.apply([], columnRange.getValues());
        return rangeValueDataMultipleList;
    }

    function findUniqueDataObject(rangeValueDataMultipleList) {
        const tempUniqueDataObject = {};
        const uniqueDataObject = {};
        const FIND =true;
        rangeValueDataMultipleList.forEach(function(str){
            if(tempUniqueDataObject === FIND){
                delete uniqueDataObject;
            }else{
                tempUniqueDataObject = FIND;
                uniqueDataObject = FIND;
            }
        });
        return uniqueDataObject ;
    }

    function margeUniqueObjectData(lastUniqueDataObject , uniqueDataObject){
        const FIND =true;
        if(uniqueDataObject)
            for(var key in uniqueDataObject){
                if(lastUniqueDataObject){
                    delete lastUniqueDataObject
                }else{
                    lastUniqueDataObject = FIND;
                }
            }
    }

    function objectKeyToArray(convertObject){
        var convertedKeyArray = [];
        if(convertObject){
            convertedKeyArray =Object.keys(convertObject);
        }
            return convertedKeyArray;
    }


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]