2017-11-16 22 views
0

私はTasker(アンドロイド用に開発されたアプリ)を使用してプロジェクトを開始しようとしています。これは有用なプラグインがたくさんあり、Googleスプレッドシートのプラグインを見つけました。 このプラグインでは、スプレッドシートから簡単に読むことができます。
しかし、私の問題はスプレッドシートに書き込むことです。私はスプレッドシートを自分の仕事用アプリのデータベースとして使用したいと思います。 1:8:1
A3 = Nexus6 /オン:2:3:4Googleスプレッドシートの検索、置換、削除

I

これは、スプレッドシートの例
A2 = Nexus5 /オフに単純な値を書き込むことを意味しますGoogleスクリプト内でスクリプトを検索して置換しようとしています。そして、私は立ち往生しています。
Nexus5をオンにすると、A1 Nexus5/1:8:1のスプレッドシートに送信されます。

のNexus5 /を検索し、セルの値を新しい値に置き換える必要があります。その後、A1を削除する必要がありますので、新しい入力を入れることができます。私が今までに得たスクリプトは、私がA1に入れてテストでリストに置き換えることができるスクリプトです。しかし、最初の部分だけを検索するようなことはできません。

function replaceInSheet(sheet, to_replace, replace_with) { 
    //get the current data range values as an array 
    var values = sheet.getDataRange().getValues(); 
    //loop over the rows in the array 
    for(var row in values){ 
    //use Array.map to execute a replace call on each of the cells in the row. 
    var replaced_values = values[row].map(function(original_value){ 
     return original_value.toString().replace(to_replace,replace_with); 
    }); 
    //replace the original row values with the replaced values 
    values[row] = replaced_values; 
    } 
    //write the updated values to the sheet 
    sheet.getDataRange().setValues(values); 
} 
function onChange(e){ 
    var sheet = SpreadsheetApp.getActiveSheet() 
    replaceInSheet(sheet,val,'test'); 
} 
+0

私はあなたが何をしたいのかを解決するのに苦労しているので、もう少し深くあなたの問題を説明してください。前と後のモックアップ? –

答えて

0

regexesを使用してこのナットをクラッキングします。 comprehensive set of answers hereがあります。要するに

/^Nexus5\//に検索を設定する(どちらかという生の正規表現の宣言、またはcreating a new RegExp() objectで)&だけで必要に応じてバック更新された値を書き、その後、string.replace()を使用しています。

var myString = “Nexus5/1.2.3”; 
var newValue = myString.replace(/^nexus5\/.+/i, “my new value”); 

ので、ここでは「Nexus5 /」&「は私の新しい値」に置き換えることで始まる文字列を探しています。 (^アンカー文字列の先頭に検索、.+は行末以外の1文字以上を意味し、我々はスラッシュをエスケープする必要があります - \/ - それは、正規表現& i後の終わりとして解釈いませんパターンは検索で大文字と小文字を区別しません)。newValueをソースシートに書き戻すことができますが、スプレッドシートのrange.setValue()またはrange.setValues()メソッドを使用する必要があります。

+0

リンクをありがとう。私はすでに正規表現などについてたくさん読んだことがあります。しかし、私は正規表現内でオブジェクトを使用する方法を見つけることができないようです。また、最初の部分と一致させたいだけですが、文字列全体を置き換えます。 –

関連する問題